【问题标题】:DB2 SQL: How do I add columns from the 'WHERE EXISTS' table to the select statementDB2 SQL:如何将“WHERE EXISTS”表中的列添加到选择语句
【发布时间】:2021-01-24 01:35:13
【问题描述】:

假设我有这个问题:

select A.ID_NUM,A.EFF_DT,B.STRT_DT,B.END_DT
FROM MEMBERSHIP A
WHERE EXISTS
(SELECT 1 FROM PLAN B
WHERE A.ID = B.ID)

如何将 PLAN 表 (B.STRT_DT,B.END_DT) 中的列添加到 select 语句中? 我收到错误:B.STRT_DT 在使用它的上下文中无效 SQLCODE = 206

【问题讨论】:

    标签: sql db2 where-clause exists


    【解决方案1】:

    你使用JOIN:

    SELECT M.ID_NUM, M.EFF_DT, P.STRT_DT, P.END_DT
    FROM MEMBERSHIP M JOIN
         PLAN P
         ON M.ID = P.ID;
    

    【讨论】:

      【解决方案2】:

      连接是最简单的方法,但如果您的 PLAN 表在其 ID 列上不是唯一的,则您需要在连接之前(或之后)添加 DISTINCT。

      SELECT A.ID_NUM,A.EFF_DT,B.STRT_DT,B.END_DT
      FROM MEMBERSHIP A
      JOIN (SELECT DISTINCT ID FROM PLAN) B 
      ON ( A.ID = B.ID )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-25
        • 2020-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多