您的位置:首页技术开发数据库技巧 → 数据库查询结果的动态排序7

数据库查询结果的动态排序7

时间:2004/12/2 0:58:00来源:本站整理作者:蓝点我要评论(0)

三、用列号作为参数





  就象第一个方案所显示地那样,你也许更喜欢用列的编号作为参数,而不是使用列的名字(列的编号即一个代表你想要作为排序依据的列的数字)。这种方法的基本思想与使用列名字作为参数的思想一样:CASE表达式根据指定的列号确定使用哪一个列进行排序。Listing 7显示了修改后的GetSortedShippers存储过程







【Listing 7:用列号作为参数】





ALTER PROC GetSortedShippers



@ColNumber AS int



AS





SELECT *



FROM Shippers



ORDER BY



CASE @ColNumber



WHEN 1 THEN CASE SIGN(ShipperID)



WHEN -1 THEN '-'



WHEN 0 THEN '+'



WHEN 1 THEN '+'



ELSE NULL



END +



RIGHT(REPLICATE('0', 10) +



CAST(ABS(ShipperID) AS varchar(10)), 10)



WHEN 2 THEN CompanyName



WHEN 3 THEN Phone



ELSE NULL



END











  当然,在这里你也可以使用Richard的方法,避免ORDER BY子句中列数据类型带来的问题。如果要根据ShipperID排序输出,你可以按照下面的方式调用修改后的GetSortedShippers存储过程







EXEC GetSortedShippers 1




相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 mssql企业管理器不能打 Oracle PRKC-1002错误原因和解决方案SQL SERVER数据库日志清空图文教程win2003计算机改名后sql server 2005 本地复DB2错误信息码大全

人气排行 彻底解决mysql中文乱码的办法mysql数据库root密码忘记的修改方法SQL SERVER数据库日志清空图文教程.bak备份文件如何恢复Oracle PRKC-1002错误原因和解决方案Oracle错误代码大全如何将txt的文本数据导入SQL server 2005呢DB2错误信息码大全