日期:2011-05-02 15:21:00 来源:本站整理
数据库查询后果的动态排序(3)[MSSQL防范]
本文“数据库查询后果的动态排序(3)[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
3、用列号作为参数
就象第一个筹划所显示地那样,你大概更喜好用列的编号作为参数,而不是利用列的名字(列的编号即一个代表你想要作为排序根据的列的数字).这种办法的基本思惟与利用列名字作为参数的思惟一样: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 以上是“数据库查询后果的动态排序(3)[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论