首页 新闻 会员 周边

在SQL语句中,关键字不可以用变量表示吗?

0
悬赏园豆:10 [已解决问题] 解决于 2014-11-12 17:00
declare @orderBy nvarchar(50);
set @orderBy = 'desc';

select *, ROW_NUMBER() over(order by Name @orderBy) rowindex
 from Team

在上面的代码中,我想用@orderBy代替 asc或者的desc,为什么不行呢?

我想动态的实现升序或者降序,该怎么做呢?

谢谢。

sikla的主页 sikla | 初学一级 | 园豆:27
提问于:2014-11-12 11:07
< >
分享
最佳答案
0
收获园豆:5
爱编程的大叔 | 高人七级 |园豆:30839 | 2014-11-12 11:15

这个方法可行,就是稍微有点复杂。

sikla | 园豆:27 (初学一级) | 2014-11-12 11:21
其他回答(4)
0

不可以,表名字段名都不能

拼接字符串

吴瑞祥 | 园豆:29449 (高人七级) | 2014-11-12 11:14
0

可以的 但是你不能 把@orderBy 直接放到静态的语句中

你必须要 做拼接

AshEs丶 | 园豆:251 (菜鸟二级) | 2014-11-12 12:02
0

拼接SQL语句,然后用execute(SQL语句字符串)就可以了!

梦在旅途 | 园豆:10 (初学一级) | 2014-11-12 13:06
0

declare @orderBy nvarchar(50);
set @orderBy = 'desc';

execute('select *, ROW_NUMBER() over(order by Name '+ @orderBy + ') rowindex
 from Team')

收获园豆:5
gltide | 园豆:403 (菜鸟二级) | 2014-11-12 15:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册