首 页 网站运营 网络编程 网页制作 图象媒体 数据库 建站资源 网管专区 下载专区 最新资讯
IT学堂|红色黑客联盟
设为首页
加入收藏
联系站长
您所在的位置:首页>数据库>Mysql>文章内容
数据库查询结果的动态排序(5)
来源: 作者: 发布时间:2007-04-13

为了解决这个问题,我们可以用前置的0补足ShipperID值,使得ShipperID值都有同样的长度。按照这种方法,基于字符的排序具有和整数排序同样的输出结果。修改后的存储过程如Listing 5所示。十个0被置于ShipperID的绝对值之前,而在结果中,代码只是使用最右边的10个字符。SIGN函数确定在正数的前面加上加号(+)前缀,还是在负数的前面加上负号(-)前缀。按照这种方法,输出结果总是有11个字符,包含一个“+”或“-”字符、前导的字符0以及ShipperID的绝对值。



【Listing 5:用列名字作为参数,第三次尝试】


ALTER PROC GetSortedShippers

@ColName AS sysname

AS


SELECT *

FROM Shippers

ORDER BY

CASE @ColName

WHEN 'ShipperID' 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 'CompanyName' THEN CompanyName

WHEN 'Phone' THEN Phone

ELSE NULL

END





  如果ShipperID的值都是正数,加上符号前缀就没有必要,但为了让方案适用于尽可能多的范围,本例加上了符号前缀。排序时“-”在“+”的前面,所以它可以用于正、负数混杂排序的情况。



[推荐] [返回顶部] [打印本页] [关闭窗口]
热点文章
·用批处理对MySQL进行数据操作
·PHP中操作MySQL的一些要注意的问题
·实例讲解:.NET如何访问MySQL数据库
·让MySQL与ASP.NET配合更强大
·数据备份中可能出错的情况及解决办法
·SQL Server连接失败错误分析与排除(1)
·SQL Server连接失败错误分析与排除(2)
·扩展微软 SQL Server 的空间功能
·了解MYSQL数据库调度与锁定的问题
·实例讲解MySQL数据库的查询优化技术
相关文章
·数据库查询结果的动态排序(4)
·当SQL Server数据库崩溃时如何恢复?
·数据库查询结果的动态排序(3)
·数据库查询结果的动态排序(6)
·数据库查询结果的动态排序(1)
·数据库管理员制胜之宝
·数据库查询结果的动态排序(2)
·如何提取除最新十条记录之外的所有记
·SQL Server 7.0数据库的六种数据移动
·关于如何在查询结果中添加自动编号
文章检索
Google
相关文章
·数据库查询结果的动态排
·当SQL Server数据库崩溃
·数据库查询结果的动态排
·数据库查询结果的动态排
·数据库查询结果的动态排
·数据库管理员制胜之宝
·数据库查询结果的动态排
·如何提取除最新十条记录
·SQL Server 7.0数据库的
·关于如何在查询结果中添
·正确配置和使用SQL mail
·MySQL修改密码方法总结
·自定义用于ASP Web站点
·SQL--JOIN之完全用法
·自定义用于ASP Web站点