【问题标题】:CASE statement in WHERE Clause of SQL QuerySQL 查询的 WHERE 子句中的 CASE 语句
【发布时间】:2014-10-13 11:41:00
【问题描述】:

我想编写一个查询,在运行时根据条件构造 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>

我该怎么做呢?有可能吗?

【问题讨论】:

  • 是的,可以试试看
  • 是的!您的语法非常正确。继续吧。
  • @Khalid Junaid:试过了。不工作。正在寻找正确的语法。
  • @RitwikDey 见demo

标签: mysql sql oracle11g


【解决方案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 不是表字段。它是一个保存用户输入的变量。
【解决方案2】:

试试这个:

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%' 条件。

【讨论】:

    猜你喜欢
    • 2020-03-26
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    相关资源
    最近更新 更多