我需要在CASE语句的THEN Section中使用OR语句......就像这样。
DECLARE @myColorPreference varchar(10)
SET @myColorPreference = 'ANY'
SELECT BikeColor, Make, Model
FROM BIKES
WHERE Color = CASE
WHEN @myColorPreference = 'Blue' THEN 'Blue'
WHEN @myColorPreference = 'ANY' THEN 'Blue' OR 'Red' OR 'Green'
END
答案 0 :(得分:2)
假设任何首选项意味着任何颜色,并且您希望将任何其他颜色首选项与指定颜色匹配,则最简单的解决方案是:
SELECT BikeColor, Make, Model
FROM BIKES
WHERE @myColorPreference in (Color,'ANY')
答案 1 :(得分:1)
为什么不呢:
SELECT BikeColor, Make, Model
FROM BIKES
WHERE Color = @myColorPreference OR
@myColorPreference = 'ANY'
人们经常过度复杂化他们的SQL并尝试使其适合命令式语言中的现有模式,而实际上他们需要制定一个更简单的WHERE
条款来说明他们想要的内容。