微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Postgres 查询通过许多参数删除重复的行

如何解决Postgres 查询通过许多参数删除重复的行

我有一个包含以下字段的表:指南、文件源、代码名称。所有这些字段都是文本类型。某些字段具有相同的值,有时这些值是 NULL。我进行了删除具有相同参数的重复行的查询,但是,当某些值等于 NULL 时,没有删除任何行。我如何更改将删除具有相同参数的行的查询包括等于 NULL 的值?

DELETE FROM public.TableName as T1
USING public.TableName as T2
WHERE T1.ctid > T2.ctid
AND T1."Guide" = T2."Guide"
AND T1."FileSource" = T2."FileSource"  
AND T1."CodeName" = T2."CodeName";

解决方法

NULL 不能直接比较(使用“=”)。您可以使用这样的合并语句处理 NULL:

DELETE FROM public.TableName as T1
USING public.TableName as T2
WHERE T1.ctid > T2.ctid
AND COALESCE(T1."Guide",'') = COALESCE(T2."Guide",'')
AND COALESCE(T1."FileSource",'') = COALESCE(T2."FileSource",'')
AND COALESCE(T1."CodeName",'') = COALESCE(T2."CodeName",'');

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。