【发布时间】:2017-09-18 17:13:27
【问题描述】:
我在客户表中有 250 多列。根据我的流程,每个客户应该只有一行,但是我发现很少有客户在表格中有多个条目
在为该客户在整个表上运行 distinct 后,它仍然为我返回两行。我怀疑其中一列可能以源表中的空格/垃圾为后缀,从而导致两行相同的信息。
select distinct * from ( select * from customer_table where custoemr = '123' ) a;
以上查询返回两行。如果您用肉眼看到结果,则任何一列都没有差异。
如果我每次都对具有不同但认为对于 250 多列来说非常手动的任务的每一列运行查询,我可以确定哪一列导致重复。
这听起来像是一个非常愚蠢的问题,但有点卡在这里。请建议您是否有更好的方法来识别它,谢谢。
【问题讨论】:
-
您可以编写一个动态 sql 脚本,遍历表的所有列,并仅比较表中超过 1 行的客户的列。
-
您可以简单地将 2 行复制粘贴到帖子中吗?
-
MySQL 还是 SQL Server?你已经标记了两者。
-
250+ 列的客户表听起来像是一个真正的问题。听起来可能存在一些严重的标准化问题。
-
使用 SQL 助手导出而不是复制粘贴。如果需要,您可以通过邮件将结果发送给我。