SQL Server动态排序依据
发布时间:2021-01-14 16:32:59 所属栏目:MsSql教程 来源:网络整理
导读:我正在尝试在存储过程中使用动态顺序,因此我可以将我想要的数据作为参数传递给存储过程.这适用于VARCHAR字段但是如果我尝试对int或datetime字段进行排序,则会使我的代码出错,如下所示 DECLARE @ORDERBY INTSET @ORDERBY = 1SELECT TOP 10 * FROM TBL_LMS_USER
|
我正在尝试在存储过程中使用动态顺序,因此我可以将我想要的数据作为参数传递给存储过程.这适用于VARCHAR字段但是如果我尝试对int或datetime字段进行排序,则会使我的代码出错,如下所示 DECLARE @ORDERBY INT
SET @ORDERBY = 1
SELECT TOP 10 * FROM TBL_LMS_USERS_RECORDs_LAST_ATTEMPT
ORDER BY
CASE
WHEN @OrderBy = 1 THEN s10_record_dow
--WHEN @OrderBy = 2 THEN pk_big_record_id
else s10_record_dow
END
如果我在case语句中取消注释第二个WHEN,则会出错
如果我不使用case语句,我可以通过这个字段订购. 有任何想法吗? 解决方法把它改成这个:SELECT TOP 10 * FROM TBL_LMS_USERS_RECORDs_LAST_ATTEMPT
ORDER BY
CASE WHEN @OrderBy = 1 THEN s10_record_dow ELSE NUll END,CASE WHEN @OrderBy = 2 THEN pk_big_record_id ELSE NULL END,CASE WHEN @OrderBy <> 1 AND @OrderBy <> 2 THEN s10_record_dow
ELSE NULL
END (编辑:均轻资讯网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – 我可以启动存储过程并立即返回而不等待它完成
- ORA-00900:无效的SQL语句 – 在oracle 10g中运行过程时
- 数据库建议 – 哪种DBMS适用于超快速读取和简单的数据结构?
- sql-server – Microsoft SQL Server的拥有架构和角色成员资
- sql-server – 收缩数据库和文件有什么区别?
- sql-server – 在MS SQL触发器中处理多个记录
- sql – oracle中Like vs Contains()之间的搜索条件差异
- 如何在ColdFusion中覆盖SQL清理
- sql-server-2008-r2 – UAT和PROD服务器上执行计划的差异
- sql-server – 如何为单个存储过程授予执行权限?
站长推荐
热点阅读


