繁体   English   中英

Teradata SQL-条件取决于WHERE子句中的条件

[英]Teradata SQL - Conditions depending on conditions in WHERE clause

这个问题是旧帖子的变体
在此处输入图片说明

条件

如果Customer_country ='A'

  1. 那么Ship_country必须='A'

  2. 和客户编号<>'A2'(即排除A2)

  3. 日期在x和y之间。 (适用于所有客户国家/地区)

相同的逻辑适用于所有Customer_country,其中分别排除了B2,C2,D2 Customer_number。

在此处输入图片说明

我对使用CASE…WHEN感到困惑,因为它期望返回一个值。
但是我没有返回任何价值。 请帮助此查询。

您应该使用where子句而不是case when

使用|| 组合像A2B2 ...这样的char的方法,那么您可以排除它。

SELECT *
FROM master as t1 
WHERE 
    t1.Customer_number <> t1.Customer_Country || '2'
AND 
    t1.Ship_Country = t1.Customer_Country

teradata ||

编辑

如果customer_number类似于'981432776',则可以使用NOT IN排除它。

SELECT *
FROM master as t1 
WHERE 
    t1.Customer_number NOT IN ('A2','B2','C2','D2')
AND 
    t1.Ship_Country = t1.Customer_Country

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM