查询结果的动态排序(3)
来源:互联网 发布:蜻蜓fm mac 编辑:程序博客网 时间:2024/05/15 02:24
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
就象第一个方案所显示地那样,你也许更喜欢用列的编号作为参数,而不是使用列的名字(列的编号即一个代表你想要作为排序依据的列的数字)。这种方法的基本思想与使用列名字作为参数的思想一样:CASE表达式根据指定的列号确定使用哪一个列进行排序。Listing7显示了修改后的GetSortedShippers存储过程。
【Listing7:用列号作为参数】
ALTERPROCGetSortedShippers
@ColNumberASint
AS
SELECT*
FROMShippers
ORDERBY
CASE@ColNumber
WHEN1THENCASESIGN(ShipperID)
WHEN-1THEN'-'
WHEN0THEN'+'
WHEN1THEN'+'
ELSENULL
END+
RIGHT(REPLICATE('0',10)+
CAST(ABS(ShipperID)ASvarchar(10)),10)
WHEN2THENCompanyName
WHEN3THENPhone
ELSENULL
END
当然,在这里你也可以使用Richard的方法,避免ORDERBY子句中列数据类型带来的问题。如果要根据ShipperID排序输出,你可以按照下面的方式调用修改后的GetSortedShippers存储过程:
EXECGetSortedShippers1<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
三、用列号作为参数就象第一个方案所显示地那样,你也许更喜欢用列的编号作为参数,而不是使用列的名字(列的编号即一个代表你想要作为排序依据的列的数字)。这种方法的基本思想与使用列名字作为参数的思想一样:CASE表达式根据指定的列号确定使用哪一个列进行排序。Listing7显示了修改后的GetSortedShippers存储过程。
【Listing7:用列号作为参数】
ALTERPROCGetSortedShippers
@ColNumberASint
AS
SELECT*
FROMShippers
ORDERBY
CASE@ColNumber
WHEN1THENCASESIGN(ShipperID)
WHEN-1THEN'-'
WHEN0THEN'+'
WHEN1THEN'+'
ELSENULL
END+
RIGHT(REPLICATE('0',10)+
CAST(ABS(ShipperID)ASvarchar(10)),10)
WHEN2THENCompanyName
WHEN3THENPhone
ELSENULL
END
当然,在这里你也可以使用Richard的方法,避免ORDERBY子句中列数据类型带来的问题。如果要根据ShipperID排序输出,你可以按照下面的方式调用修改后的GetSortedShippers存储过程:
EXECGetSortedShippers1
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 查询结果的动态排序(3)
- 数据库查询结果的动态排序(3)
- 查询结果的动态排序
- 数据库查询结果的动态排序
- 查询结果的动态排序(5)
- 查询结果的动态排序(4)
- 查询结果的动态排序(2)
- 查询结果的动态排序(1)
- 数据库查询结果的动态排序(6)
- 数据库查询结果的动态排序(5)
- 数据库查询结果的动态排序(4)
- 数据库查询结果的动态排序(1)
- 数据库查询结果的动态排序(2)
- Hibernate如何完成查询结果的排序
- android 联系人查询结果的排序问题
- android 联系人查询结果的排序问题
- mysql对查询的结果集排序
- 查询结果按自己的规则排序
- 查询结果的动态排序(5)
- 计算机专业毕业了,还要不要参加培训班?
- 查询结果的动态排序(4)
- 解决瑞星安装时通用库错误问题
- 提升JSP应用程序的七个实用方法
- 查询结果的动态排序(3)
- 查询结果的动态排序(2)
- 微软面试
- 查询结果的动态排序(1)
- ASP.NET面试题 清单
- 有感:应聘Java笔试时可能出现问题
- 的备份与恢复
- vs2005常用快捷键(包括代码自动缩进)
- 在SQLServer中保存和输出图片