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 条件选择的主要内容,如果未能解决你的问题,请参考以下文章

由于计数,db2/sql 查询不允许从连接中选择静态值

如何针对 db2 数据库优化 SQL/Python 选择查询?

使用 Worklight 6.1.0 触发选择查询时出现 DB2 SQL 错误?

Db2/sql:使用连接选择和更新最旧的条目

使用 DB2 检索不区分大小写的 SQL 选择查询

DB2 SQL:如何将“WHERE EXISTS”表中的列添加到选择语句