加入收藏 | 设为首页 | 会员中心 | 我要投稿 天津站长网 (https://www.022zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2021-01-28 09:38:18 所属栏目:MsSql教程 来源:网络整理
导读:我试图比较来自相同ID的两个地址,看看它们是否匹配.例如: Id Adress Code Address1 1 123 Main1 2 123 Main2 1 456 Wall2 2 456 Wall3 1 789 Right3 2 100 Left 我只想弄清楚每个ID的地址是否匹配.所以在这种情况下,我想只返回ID 3作为地址代码1和2的不同

我试图比较来自相同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的不同地址.

解决方法

加入表格并给它两个不同的别名(A和B).这允许比较同一表的不同行.
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)不同的客户.

(编辑:天津站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读