我有3个复选框。
Checkbox1
后,获取A = 1的所有记录。Checkbox2
后,获取B = 1的所有记录。Checkbox3
后,获取A = 0且B = 0的所有记录。 例如:如果同时选择Checkbox1
和Checkbox3
,则获取A = 1的所有记录以及A = 0和B = 0的记录。
我正在做这样的事情:
SELECT FROM CarData
WHERE (@IsCheckbox1=0 OR (@IsCheckbox1=1 AND A=1))
AND (@IsCheckbox2=0 OR (@IsCheckbox2=1 AND B=1))
AND (@IsCheckbox3=0 OR (@IsCheckbox3=1 AND A=0 AND B=0))
但是,它无法正常工作。任何帮助表示赞赏。
答案 0 :(得分:0)
" union"所有结果表明您希望条件之间OR
。所以情况如下:
SELECT FROM CarData
WHERE ( (@IsCheckbox1 = 1 AND A = 1) OR
(@IsCheckbox2 = 1 AND B = 1) OR
(@IsCheckbox3 = 1 AND A = 0 AND B = 0)
)
答案 1 :(得分:0)
SELECT * FROM CarData WHERE A = CASE WHEN @IsCheckbox1 = 1 THEN 1 ELSE 0 END OR B = CASE WHEN @IsCheckbox2 = 1 THEN 1 ELSE 0 END
答案 2 :(得分:0)
尝试为每个条件使用UNION
SELECT * FROM CarData WHERE (@IsCheckbox1=0 OR (@IsCheckbox1=1 AND A=1))
UNION
SELECT * FROM CarData WHERE (@IsCheckbox2=0 OR (@IsCheckbox2=1 AND B=1))
UNION
SELECT * FROM CarData WHERE (@IsCheckbox3=0 OR (@IsCheckbox3=1 AND A=0 AND B=0))