gpt4 book ai didi

sql - 查找 Teradata SQL 中给定列的哪些行具有不同的值

转载 作者:行者123 更新时间:2023-12-03 11:17:18 25 4
gpt4 key购买 nike

我正在尝试比较来自同一 ID 的两个地址,以查看它们是否匹配。例如:

Id  Adress Code     Address
1 1 123 Main
1 2 123 Main
2 1 456 Wall
2 2 456 Wall
3 1 789 Right
3 2 100 Left

我只是想弄清楚每个 ID 的地址是否匹配。因此,在这种情况下,我只想返回 ID 3,因为地址代码 1 和 2 具有不同的地址。

最佳答案

将表与自身连接并为其指定两个不同的别名(以下示例中的 AB)。这允许比较同一表的不同行。

SELECT DISTINCT A.Id
FROM
Address A
INNER JOIN Address B
ON A.Id = B.Id AND A.[Adress Code] < B.[Adress Code]
WHERE
A.Address <> B.Address

“小于”比较 <确保您获得 2 个不同的地址,并且不会两次获得相同的 2 个地址代码。使用“不等于” <>相反,将产生代码为 (1, 2) 和 (2, 1);每一个为 A别名和 B别名依次。

join 子句负责行的配对, where 子句测试附加条件。

上面的查询适用于任何地址代码。如果要将地址与特定地址代码进行比较,可以将查询更改为
SELECT A.Id
FROM
Address A
INNER JOIN Address B
ON A.Id = B.Id
WHERE
A.[Adress Code] = 1 AND
B.[Adress Code] = 2 AND
A.Address <> B.Address

我想这对于查找帐单地址(例如,地址代码 = 1)与送货地址(地址代码 = 2)不同的客户可能很有用。

关于sql - 查找 Teradata SQL 中给定列的哪些行具有不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13708176/

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