【问题标题】:Is SQL query having "case" with muliple condition in When valid?SQL 查询在何时有效时是否具有多个条件的“案例”?
【发布时间】:2015-12-30 11:14:07
【问题描述】:

SQL 查询:

"SELECT Store_Name, CASE Store_Name WHEN 'abc','xyz' THEN Sales * 2  ELSE Sales END FROM Store_Information";

“WHEN”子句中是否允许像上述查询一样使用两个值 - WHEN 'abc','xyz' THEN Sales * 2

编辑:我不需要运行这个查询。我需要解析这个查询。我从Tableau 得到这个。

我想知道这个查询在语法上是否正确?

【问题讨论】:

  • 这适用于哪个 RDBMS?请添加标签以指定您使用的是mysqlpostgresqlsql-serveroracle 还是db2 - 或其他完全不同的东西。
  • 运行查询会比提出问题所需的时间快得多。但无论如何我都会回答你的问题。它在语法上无效。
  • 简单的答案是“不”。
  • @DanBracuk 感谢您的回复。Tableau 在内部将此类查询发送给我的驱动程序。 SQL Parser 无法理解它。我在谷歌上没有找到太多。所以,我在这里问

标签: sql


【解决方案1】:

你有两个选择。

1) 简单案例表达

CASE Store_Name
   WHEN 'abc' THEN Sales * 2
   WHEN 'xyz' THEN Sales * 2
   ELSE Sales
END

2) 搜索案例表达式。我认为这将是您任务的更好选择

CASE WHEN Store_Name IN('abc', 'xyz')
     THEN Sales * 2
     ELSE Sales
END

【讨论】:

  • 我不是在问另一种方法来实现这一点。只是想知道这在语法上是否正确?
  • @Tom Tableau 在内部将此类查询发送给我的驱动程序。 SQL Parser 无法理解它。我在谷歌上没有找到太多。所以,我在这里问。
猜你喜欢
  • 1970-01-01
  • 2017-02-24
  • 2019-07-27
  • 2013-02-26
  • 2021-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多