【发布时间】:2021-02-10 14:32:32
【问题描述】:
我有一张桌子,
id category column1 column2 column3
1 1 val1a val1b val1c
2 2 val2a val2b val2c
3 3 val3a val3b val3c
我需要根据多个条件从中选择列,如下所示。
SELECT id, category, column1, column2, column3
FROM table
WHERE id = @id
AND category IN (
select case when (@input1='Yes' AND @input2='Yes') then (select category from table where category in ('1','2'))
when (@input1='Yes' AND @input2='No') then (select category from table where category ='1')
when (@input1='No' AND @input2='Yes') then (select category from table where category ='2')
else ''
end as category)
END
输入值@input1 和@input2 是从另一个表中抓取的,需要根据上述条件选择并输出类别在('1','2') 中的行。
我需要什么-
如果 input1=Yes 且 input2=Yes 输出类别在 ('1','2') 中的行
如果 input1=Yes 且 input2=No 输出类别在 ('1') 中的行
如果 input1=No 且 input2=Yes 输出类别在 ('2') 中的行
如果 input1=No 和 input2=No 输出行('')中的类别
case 语句是否输出多个值?需要帮助。
【问题讨论】:
-
仅供参考,它是一个案例表达式而不是一个语句。
-
“case 语句是否输出多个值?” 要回答这个问题,
CASE表达式会返回一个标量值。 -
我们可以在这里使用替代案例吗?
-
@EERS2 。 . .在您的示例数据中,
id是唯一的,因此无需对category进行第二次比较。
标签: sql sql-server asp.net-mvc tsql case