我在postgreSQL中使用except语法来检查两个表中匹配的地址是否匹配。
select Address from allsalesdata
except
select Address from addresses
我复制了丢失的地址并粘贴到Excel中以检查数据源(地址),但我无法发现差异。我已经在Excel中检查了两个,if和exact公式,以检查这两个值是否匹配,答案是否为负数。如何在SQL中发现两个列值之间的差异?
allsalesdata addresses
111 Thoroughbred Avenue 111 Thoroughbred Avenue
222 Bannerdale Blvd 222 Bannerdale Blvd
3333 Stampede Drive 3333 Stampede Drive
444 Stampede Drive 444 Stampede Drive
555 Thoroughbred Avenue 555 Thoroughbred Avenue
答案 0 :(得分:1)
尝试使用trim
修剪(字符串中的[leading | trailing |两个] [字符])
从字符串的开头/结尾/两端删除仅包含字符(默认为空格)的最长字符串
select trim(both ' ' from Address) as Address from allsalesdata
except
select trim(both ' ' from Address) as Address from addresses
答案 1 :(得分:1)
正如McNets指出的那样,你可以在他提到的时候删除前导空格和尾随空格。如果你不仅仅有空格,那么你可能想要使用this answer
中描述的正则表达式功能如果您想要的是发现差异以便以后处理,我建议将“差异”表(选择除了选择)写入启用了引号的csv,这样您就可以使用文本编辑器或linux命令来发现那些讨厌的字符。