Raj*_*lar 0 sql sql-server sql-server-2005
通过搜索多个SO线程,我无法编写一个在where子句中返回适当条件的查询.例如,我有列Col1,它是int一个变量,var1就像varchar现在我在查询下面使用的那样,但它不起作用.
Where CASE WHEN var1 = '1' THEN (Col1 = 1)
WHEN var1 = '2' THEN (Col1 = 2)
ELSE AND (1= 1)
END
Run Code Online (Sandbox Code Playgroud)
它给了我syntax error near '='.
编辑:
如果我想要条件如何
Col1 IN(condtions ....)
我认为它应该是这样的;
Where Col1 = CASE WHEN var1 IN ('1','2') THEN var1 ELSE Col1 END
Run Code Online (Sandbox Code Playgroud)
要么
Where Col1 = CASE var1 WHEN '1' THEN 1
WHEN '2' THEN 2
ELSE Col1 END ...
Run Code Online (Sandbox Code Playgroud)
作为旁注,如果Col1 is nullable和need to select那些那么使用;
Where Col1 is null OR
Col1 = CASE var1 WHEN '1' THEN 1
WHEN '2' THEN 2
ELSE Col1 END ...
Run Code Online (Sandbox Code Playgroud)