SQL Server动态排序依据
发布时间:2021-01-14 04:23:53 所属栏目:MsSql教程 来源:网络整理
导读:我正在尝试在存储过程中使用动态顺序,因此我可以将我想要的数据作为参数传递给存储过程.这适用于VARCHAR字段但是如果我尝试对int或datetime字段进行排序,则会使我的代码出错,如下所示 DECLARE @ORDERBY INTSET @ORDERBY = 1SELECT TOP 10 * FROM TBL_LMS_U
我正在尝试在存储过程中使用动态顺序,因此我可以将我想要的数据作为参数传递给存储过程.这适用于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-2005 – 用户定义的函数输出进行Nhibernate过滤
- 硬件全国巡展拉开帷幕还有豪华大奖送!
- sql-server – 我们应该将数据库移动到我们的(共享)Web主机
- Microsoft .Net Remoting系列教程之二:Marshal、Disconnect
- 盘片选购大揭密:金、蓝、绿各为几何?
- 十年磨砺 腾讯云加注领跑2016云存储
- HTML input file控件限制上传文件类型_动力节点Java学院整理
- Linux发起人研发新系统 UserLinux挑战红帽
- sql-server – 如何在Sql Server 2005上获取最后一次插入/更
- sql-server – SQL Server使用与定义不匹配的数据填充PERSI