order by(20分)

  • 主题发起人 主题发起人 unixhost
  • 开始时间 开始时间
U

unixhost

Unregistered / Unconfirmed
GUEST, unregistred user!
select * from table1 order by ORDER
这里ORDER是一个变量根据用户选择确定
select * from table1 order by :ORDER,这么写行否.
我用的是SQL SERVER数据库.
 
order是关键字,
select * from table1 order by :ORDER ;//请把后面的ORDER换成别的变量
 
可以这样写:
var
Str:String;
ORDER:String;
begin
Str := 'Select * from table1 order by %s';
Str := Format(Str,[ORDER]);
Query1.Sql.Add(Str);
 
order by :field好象不行, 因为在sql里面, :value方式表示的是一个值,
而order by 必须要一个字段名, 可以采用一种变通的方法, 比如:

orderfield:='order by field1'; //orderfield为一全局变量, 可在其他地方赋值
query1.sql.add('select * from table1 '+ orderfield);
 
同意 Iknow
 
可以这样嘛。
with query do
begin
sql.clear;
sql.add('select * from table1');
sql.add('order by'+orderField);
try
...
end;
其中orderField是你自己定义的字段变量。同时应该是string类型的
 
如果你知道order by第几列,还有一个标准用法:
order by 2 (第2列排序)
order by 3 desc,4 asc
这样的语法
 
同意 Iknow
我一直这么用,让用户选排序方法,动态加SQL语句.
 
同意wumeng
 
接受答案了.
 
后退
顶部