declare @orderBy nvarchar(50); set @orderBy = 'desc'; select *, ROW_NUMBER() over(order by Name @orderBy) rowindex from Team
在上面的代码中,我想用@orderBy代替 asc或者的desc,为什么不行呢?
我想动态的实现升序或者降序,该怎么做呢?
谢谢。
不可以,表名字段名都不能
拼接字符串
可以的 但是你不能 把@orderBy 直接放到静态的语句中
你必须要 做拼接
拼接SQL语句,然后用execute(SQL语句字符串)就可以了!
declare @orderBy nvarchar(50);
set @orderBy = 'desc';
execute('select *, ROW_NUMBER() over(order by Name '+ @orderBy + ') rowindex
from Team')