SQL查询中WHERE子句中的CASE语句

3
我想编写一个查询,根据条件在运行时构建WHERE子句。以下是我的想法。
SELECT name from data_table WHERE 
CASE
WHEN input_data = location THEN <where condition should be based on location>
WHEN input_data = college  THEN <where condition should be based on college name>

我该如何做到这一点?这是可能的吗?


3
可以的,不妨试一试。 - M Khalid Junaid
1
是的!你的语法非常正确。继续吧。 - Ankit Bajpai
1
@ Khalid Junaid:尝试了,但不起作用。一直在寻找正确的语法。 - Ritwik Dey
1
@RitwikDey 点击 demo 查看。 - M Khalid Junaid
2个回答

1
SELECT name from data_table
WHERE (input_data = location AND condition based on location)
   OR (input_data = college  AND condition based on college name)

input_data不是表字段。它是一个保存用户输入的变量。 - Ritwik Dey

0

试试这个:

SELECT name 
  from data_table 
 WHERE 
   CASE
     WHEN input_data = location and name like 'B%' THEN 1
     WHEN input_data = college and name like 'C%' THEN 1
   END = 1

请将您的条件添加到name like 'B%'name like 'C%'条件中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接