栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

我可以将SQL Server排序顺序存储在变量中吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我可以将SQL Server排序顺序存储在变量中吗?

传入@OrderBy int,其中正数是ASC,负数是DESC,实际数字是要排序的列

SELECt    dt.yourColumn1        ,dt.yourColumn2        ,dt.yourColumn3        ,CASE  WHEN @OrderBy>0 THEN dt.SortBy ELSE NULL         END AS SortByAsc        ,CASE  WHEN @OrderBy<0 THEN dt.SortBy ELSE NULL         END AS SortByDesc    FROM (SELECt   yourColumn1       ,yourColumn2       ,yourColumn3       ,CASEWHEN ABS(@OrderBy) = 1 THEN surnameWHEN ABS(@OrderBy) = 2 THEN forenameWHEN ABS(@OrderBy) = 3 THEN fullNameWHEN ABS(@OrderBy) = 4 THEN ConVERT(varchar(10),userId)WHEN ABS(@OrderBy) = 5 THEN ConVERT(varchar(10),MobileNumberWHEN ABS(@OrderBy) = 6 THEN DeviceStatusWHEN ABS(@OrderBy) = 7 THEN LastPositionWHEN ABS(@OrderBy) = 8 THEN ConVERT(varchar(23),Lastalert,121)WHEN ABS(@OrderBy) = 9 THEN ConVERT(varchar(23),LastCommunication,121)WHEN ABS(@OrderBy) =10 THEN ConVERT(varchar(23),LastPrealert,121)ELSE NULL       END AS SortBy   FROM YourTablesHere   WHERe X=Y         ) dt    ORDER BY SortByAsc ASC, SortByDesc DESC

只需确保您构建的字符串能够正确排序,请注意,我使用’YYYY-MM-DD
hh:mm:ss.mmm’作为日期,并将数字放入字符串中。我们通常将多个列放在一起,因此,如果您按姓氏排序,也使用姓氏,等等。请注意,如果您合并多个列,则需要用零或空格填充。

如果您不希望将SortByAsc和SortByDesc列包含在结果集中,请将整个内容包装在派生表中。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/517595.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号