gpt4 book ai didi

teradata - where 子句中有多个值的多列

转载 作者:行者123 更新时间:2023-12-04 23:57:36 27 4
gpt4 key购买 nike

我正在执行一个查询,该查询在具有多个值的 where 子句中有多个列。我知道在 SQL 中,您可以使用 IN 条件来满足并获得正确的输出。在teradata中可以做什么?

我在 Oracle 中的代码如下所示:

select td.country_code,td.phone_num 
from telephone_directory td
where (td.country_code, td.phone_num) in ((91,1234567890),(44,1020304050),(1,998877446655))

这会打印出确切的结果,即 3 行

我在 teradata 中的查询如下所示
select country_code ,phone_num  
from telephone_directory
where (country_code in (91, 44, 1) and phone_num in( 1234567890, 1020304050, 998877446655)

然而,这会返回更多行:
country_code  phone_num  
91 1234567890
91 1020304050
44 1020304050
1 998877446655

注意:country_code 和电话号码的组合不是唯一的。

有没有办法像在 ORACLE 中那样在 teradata 中过滤掉它?

最佳答案

据我所知,Teradata 不支持像在 Oracle 中那样的“扩展”where 子句语法;您需要将条件指定为复合表达式:

select country_code ,phone_num
from telephone_directory
where (country_code=91 and phone_num=1234567890)
or (country_code=44 and phone_num=1020304050)
or (country_code=1 and phone_num=998877446655)

关于teradata - where 子句中有多个值的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15250525/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com