在Teradata SQL中查找给定列的哪些行具有不同的值
发布时间:2021-01-25 16:03:47 所属栏目: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)不同的客户. (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |