【问题标题】:CASE WHEN with query in THEN fieldCASE WHEN 与 THEN 字段中的查询
【发布时间】:2021-09-13 13:14:10
【问题描述】:

是否可以有一个 CASE WHEN 查询而不是 ELSE 是一个“文本字符串”它返回一个变量?

例子

CASE WHEN (age NOT IN (SELECT age FROM PersonInfo) THEN 'field missing' ELSE (SELECT age FROM PersonInfo)

【问题讨论】:

  • 改为使用左连接。
  • 请提供样本数据和期望的结果。除非PersonInfo 有零行或一行,否则您的代码将返回错误。

标签: sql case


【解决方案1】:

有两种选择:

  1. 您可以在 else 中使用子查询,但前提是子查询返回单个值:

    CASE WHEN (age NOT IN (SELECT age FROM PersonInfo) THEN 'field missing' ELSE (SELECT MAX(age) FROM PersonInfo) END

  2. 你可以使用join

    CASE WHEN (age NOT IN (SELECT age FROM PersonInfo) THEN 'field missing' ELSE pi.age END ...... 加入 PersonInfo 上

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 2019-11-24
    相关资源
    最近更新 更多