Tsql 如何在WHERE中动态地使用CASE?使用日期时间选择
我有一个select,它需要有动态WHERE CASE条件Tsql 如何在WHERE中动态地使用CASE?使用日期时间选择,tsql,case,where,Tsql,Case,Where,我有一个select,它需要有动态WHERE CASE条件 SELECT * FROM vwShowUctyPohyby WHERE (@id_parent is null or id_parent=@id_parent) and (datetime_creation <= @record_first_datetime) ORDER BY CASE @sort_order WHEN 0 THEN datetime_creat
SELECT
*
FROM
vwShowUctyPohyby
WHERE
(@id_parent is null or id_parent=@id_parent)
and (datetime_creation <= @record_first_datetime)
ORDER BY
CASE @sort_order WHEN 0 THEN datetime_creation END ASC,
CASE @sort_order WHEN 1 THEN datetime_creation END DESC
选择
*
从…起
vwShowUctyPohyby
哪里
(@id\u parent为null或id\u parent=@id\u parent)
(datetime_creation这是你的意图吗
SELECT *
FROM vwShowUctyPohyby
WHERE
(@id_parent is null or id_parent=@id_parent)
and
((datetime_creation <= @record_first_datetime and @sort_order = 0) or
(datetime_creation >= @record_first_datetime and @sort_order = 1))
ORDER BY
CASE @sort_order WHEN 0 THEN datetime_creation END ASC,
CASE @sort_order WHEN 1 THEN datetime_creation END DESC
选择*
来自vwShowUctyPohyby
哪里
(@id\u parent为null或id\u parent=@id\u parent)
及
((datetime\u creation=@record\u first\u datetime和@sort\u order=1))
订购人
CASE@sort\u顺序为0时,则datetime\u创建结束ASC,
CASE@sort\u order当1时,则datetime\u创建结束DESC
案例可用于列值(字段级),而不是语句的一部分。即使您不喜欢,您也必须创建两个语句。谢谢,您可以这样做,作为正确答案,我希望对其进行评分。谢谢您的帮助。