SQL DB2 条件选择

Posted

技术标签:

【中文标题】SQL DB2 条件选择【英文标题】:SQL DB2 Conditional Select 【发布时间】:2012-03-12 19:51:46 【问题描述】:

我正在处理一个 DB2 存储过程,但在获得我想要的结果时遇到了一些麻烦。以下查询的问题在于它不会从表 A 返回未通过最终 where 子句的行。我想从表 A 中接收满足第一个 WHERE 子句(WHERE A.GENRC_CD_TYPE = 'MDAA')的所有行。然后,从表 B 中为每一行添加一个电子邮件列(WHERE (A.DESC) = B.MATL_PLNR_ID)。

    SELECT  A.GENRC_CD,
            A.DESC_30,
            A.DOL,
            A.DLU,
            A.LU_LID,
            B.EMAIL_ID_50
    FROM    GENRCCD A,
            MPPLNR B
    WHERE A.GENRC_CD_TYPE = 'MDAA'
    AND (A.DESC_30) = B.MATL_PLNR_ID;

非常感谢任何帮助,谢谢!

【问题讨论】:

【参考方案1】:

那么你需要的是一个 LEFT JOIN:

SELECT  A.GENRC_CD,
        A.DESC_30,
        A.DOL,
        A.DLU,
        A.LU_LID,
        B.EMAIL_ID_50
FROM    GENRCCD A LEFT JOIN
        MPPLNR B on A.DESC_30=B.MATL_PLNR_ID
WHERE A.GENRC_CD_TYPE = 'MDAA'

【讨论】:

以上是关于SQL DB2 条件选择的主要内容,如果未能解决你的问题,请参考以下文章