查询的where条件能否用case when来使用哪个列解决思路
查询的where条件能否用case when来使用哪个列
上面的写法是错误的,我是想实现@P=1时执行
SELECT * FROM TB WHERE A列>10
否则执行
SELECT * FROM TB WHERE B列>10
不知道如何实现
------解决方案--------------------
不可以用case when
SELECT * FROM TB WHERE (A列>10 and @P=1) or (B列>10 and @P<>1)
- SQL code
declare @P int set @P=1 SELECT A列 ,B列 ,C列 ,D列 FROM TB WHERE (CASE WHEN @P=1 THEN A列>10 ELSE B列>10 END)
上面的写法是错误的,我是想实现@P=1时执行
SELECT * FROM TB WHERE A列>10
否则执行
SELECT * FROM TB WHERE B列>10
不知道如何实现
------解决方案--------------------
不可以用case when
SELECT * FROM TB WHERE (A列>10 and @P=1) or (B列>10 and @P<>1)