如何按编号的专业部分进行升序排序
编号:QA004649
建立日期: 2002年11月27日 最后修改日期:2002年11月27日
所属类别:
anli:
操作系统:windows2000 professional
编程工具:delphi5
问题:数据库是SQL7.0。我现在碰到一个问题:从学生资料库TBL_Studend)中查询编号(FldNo),姓名(FldName),性别(FldSex),年龄(FldAge)等学生资料,并按编号的专业部分进行升序排序,如:编号2001a10001表示2001届a1专业的0001号学生,现在要按第五和第六个字符组合(即a1部分)升序排序。
我在SQL中用这样的语句“select FldNo,FldName,FldSex,FldAge from TBL_Studend order by left(right(FldNo,6),2)”可以得出正确结果,但在delphi5中的query语句这样写就不行,就会出错、不能执行。请问在delphi5中的query语句是如何写的?
回答:
yaxich的意见:
试试这样写:Select FldNo,FldName,FldSex,fldAge from TBL_Studend order by SubString(FldNo,5,2)
沈默的意见:
在DELPHI中的QUERY控件中,建议复杂的查询不要用STRING,而改用TSTRINGS。
具体的写法为:
from TBL_Studend order by left(right(FldNo,6),2)
Query1.close;
Query1.SQL.clear;
Query1.SQL.ADD('SELECT FldNo,FldName,FldSex,FldAge');
Query1.SQL.ADD('FROM TBL_Studend');
Query1.SQL.ADD('ORDER BY left(right(FldNo,6),2)');
此问题由沈默回答。
| |
|
|
| |
|
|