【问题标题】:How do you write a Teradata SQL Statement with EITHER OR between two columns with multiple WHERE statements?您如何使用 EITHER 或在具有多个 WHERE 语句的两列之间编写 Teradata SQL 语句?
【发布时间】:2020-06-16 05:11:33
【问题描述】:

我正在尝试使用两列。 DATA_IND 给出“是”或“否”的值,而另一列 VIDEO_IND 给出“是”或“否”。

如果任一列有“是”,我希望我的查询返回。

Return CASE (yes, yes)(yes,no)(no,yes) 不返回 if (no,no)

SELECT 
    t.email,
    a.acct_sk,
    a.snapshot_dt,
    a.ACCT_SK,
    a.ACCT_ESTBD_DT,
    a.ACCT_TERM_DT, 
    a.CUST_EMAIL_ADDR,
    a.VOICE_IND, 
    a.DSL_IND, 
    a.FIOS_IND,
    a.DATA_IND,
    a.VIDEO_IND,
    e.acct_sk,
    e.BILL_DT,
    e.CURR_BILL_AMT

FROM Table 1 t

LEFT JOIN Table 2 a 
   ON t.email = a.CUST_EMAIL_ADDR 

LEFT JOIN Table 3 e
   ON a.acct_sk = e.acct_sk

WHERE t.email not in ('askforemail@dsjkahk.vv') 
   AND a.ACCT_TYPE_CD ='B'
   AND a.ACCT_ESTBD_DT between date '2019-09-01' and date '2019-09-30'
   AND a.snapshot_dt = DATE '2020-01-01'
   AND e.BILL_DT between date '2020-01-01' and date '2020-01-31';

这两列都可以是“是”,不能都是“否” a.DATA_IND, a.VIDEO_IND,

【问题讨论】:

    标签: sql case teradata


    【解决方案1】:

    如何将其添加到where 子句中:

    and not (date_ind = 'no' and video_ind = 'no')
    

    或者,假设值是二进制的:

     and (data_ind = 'yes' or video_ind = 'yes')
    

    【讨论】:

    • 太棒了!我没有意识到我可以这样使用括号!非常感谢!!
    猜你喜欢
    • 1970-01-01
    • 2013-07-07
    • 2019-05-22
    • 1970-01-01
    • 2022-01-25
    • 2020-12-13
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    相关资源
    最近更新 更多