字段不能排序(100分)

  • 主题发起人 主题发起人 xuzhenshan
  • 开始时间 开始时间
X

xuzhenshan

Unregistered / Unconfirmed
GUEST, unregistred user!
我建了一个表,其中一个字段“XSD”的值是通过其它字段在表的beforepost里计算出来的,然后再按照相似度由大到小排序代码如下:
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from 表 order by XSD DESC');
Prepared;
Open;
end;
但是运行出来后没有排序,有谁知道什么原因不?
 
begin
Close;
SQL.Clear;
SQL.Add('select * from 表 order by XSD ASC');
Prepared;
Open;
end;
 
你的实际表里面xsd这个字段并没有存储它具体的值对吧?
这样的话那么你的排序是不管用的,你需要在本地内存表里做排序才行.

ADOQuery.Sort := 'XSD DESC';
 
语句没错呀
 
这个计算值是个字段吗?存在数据表中了吗?如果没有就不能排序
 
要保存后再显示才能排序?
 
没有遇到这种情况,是不是搞错了啊?
 
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select A,B,C,(A+B+C) AS D from 表 order by (A+B+C) DESC');
Open;
end;

去掉 Prepared
不清楚你怎么计算的,排序用字段的别名有时好像不行,你要用计算的字段一起
 
XSD是其中的一个字段
 
如果预先你的xsd字段没有值,那么你的sql语句查询出来的时候已经排过序了,[red]但是[/red]当你数据有所改变后就不会重新再次排序,所以你得用本地排序来操作
1. adoquery.sort:='xsd DESC';
2. http://www.delphibbs.com/keylife/iblog_show.asp?xid=4078
 
是不是要多重排序啊,多重排序的话可以做!
 
adoquery.sort:='xsd DESC'要怎么写?把计算结果post后直接写吗
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
487
import
I
后退
顶部