更改运算符-TSQL的情况
我想知道您是否可以在更改运算符-TSQL的情况,sql,sql-server,tsql,case,where,Sql,Sql Server,Tsql,Case,Where,我想知道您是否可以在WHERE子句中使用case语句来更改运算符 我试图做的是根据布尔值过滤出结果 SELECT * FROM table1 WHERE CASE @Status WHEN 1 THEN Name LIKE 'SOMETHING%' WHEN 2 THEN Name NOT LIKE 'SOMETHING%' END 我想知道这是否可行?您可以不使用开关来实现,如下所示: SELECT * FROM table1
WHERE
子句中使用case语句来更改运算符
我试图做的是根据布尔值过滤出结果
SELECT *
FROM table1
WHERE
CASE @Status
WHEN 1 THEN Name LIKE 'SOMETHING%'
WHEN 2 THEN Name NOT LIKE 'SOMETHING%'
END
我想知道这是否可行?您可以不使用
开关来实现,如下所示:
SELECT *
FROM table1
WHERE
(@Status = 1 AND Name LIKE 'SOMETHING%')
OR (@Status = 2 AND Name NOT LIKE 'SOMETHING%')
既然@Status
一次只能等于一件事,那么或表达式中只有一个组件将决定WHERE
条件的结果。太神奇了,这么简单,我为什么没想到呢!一点逻辑,我以前用过很多次,但当时的逻辑很清楚。可能是重复的