热情软件屋

 

如何按编号的专业部分进行升序排序


编号: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)');
    

此问题由沈默回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio