--我的表中只有三个字段: uidID uniqueidentifier; dtDate datetime ; szDescription nvarchar(max)--方法1declare @order nvarchar(30)
set @order = 'dtDate'
SELECT *
FROM tb_products
ORDER BY
CASE @order
WHEN 'dtDate' THEN 2
WHEN 'uidID' THEN 1
WHEN 'szDescription' THEN 3
ELSE NULL END DESC
我的想法是动态传递排序列名 , 然后进行排序.
我知道下面这样语句可以正确执行:
--方法2declare @order nvarchar(30)
set @order = 'szDescription'
SELECT *
FROM tb_products
ORDER BY
CASE @order
--WHEN 'dtDate' THEN CAST(dtDate AS varchar(50))--根据 追索 的回答已经改为下面的WHEN 'dtDate' THEN Convert(varchar(10),dtDate,102)
WHEN 'uidID' THEN CAST(uidID AS varchar(50))
WHEN 'szDescription' THEN szDescription
ELSE NULL
END DESC
现在的问题是用方法2 无法找到函数列 . 有谁能告诉我方法1错哪儿了吗?
临摹微笑
白猪掌柜的
慕的地10843
largeQ
料青山看我应如是
不负相思意
相关分类