【问题标题】:How do I compare two columns from two different tables如何比较两个不同表中的两列
【发布时间】:2020-11-28 06:27:22
【问题描述】:

我正在运行一个 CREATE TABLE TBL AS SELECT 语句,如下所示。我想写一个 CASE STATEMENT 来比较 X.PRESC_ID 列中的值到 Y.PRSC_NPI 列中的值,如果匹配,则应插入到 TBL.PRESC_ID, 对于所有与 Y.PRSC_NPI 中的任何值都不匹配的 X.PRESC_ID 应插入到 TBL.PRSC_NPI_N

CREATE  TABLE TBL (
      Col1,
      Col2,
      PRESC_ID,
      PRSC_NPI_N,
 AS 
 (
          SELECT  
                 Col1,
                 Col2,
                 PRESC_ID,
                 PRSC_NPI_N,
                 FROM   TBL2 X
    JOIN
        (SELECT CLAIM_ID,PRSC_NPI FROM TBL3) Y
                ON Y.CLAIM_ID  = Y.Col1

我尝试了下面的一个,但它不起作用

CASE
WHEN X.PRESC_ID = Y.PRSC_NPI THEN TBL.PRESC_ID
ELSE TBL.PRSC_NPI_N
END

             

【问题讨论】:

    标签: teradata teradata-sql-assistant teradata-covalent teradata-aster


    【解决方案1】:

    您似乎真的想要两个 CASE 表达式,每个结果列一个。类似的东西

    CASE WHEN X.PRESC_ID = Y.PRSC_NPI THEN X.PRESC_ID END AS PRESC_ID,
    CASE WHEN NOT(X.PRESC_ID = Y.PRSC_NPI) THEN X.PRSC_NPI_N END AS PRSC_NPI_N
    

    【讨论】:

    • 或者您的要求比这更复杂?如果是这样,请编辑问题。
    • 非常感谢 Fred,我 2 天前回复了您的回答,我不确定为什么不在这里。我使用了你提供的案例陈述,我得到了我想要的结果。我已经要求我们的高级开发人员检查我的代码。再次感谢,我会在收到他的回复后更新您
    猜你喜欢
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多