【问题标题】:SQL to identify duplicate columns from table having hundreds of columnSQL从具有数百列的表中识别重复列
【发布时间】: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 助手导出而不是复制粘贴。如果需要,您可以通过邮件将结果发送给我。

标签: sql teradata


【解决方案1】:

用 sql 解决这个一次性问题太费力了。只需复制粘贴到 excel,将数据转换成列,然后使用一些简单的函数,例如“if a==b then 1 else 0”。

【讨论】:

    猜你喜欢
    • 2011-11-16
    • 2021-02-24
    • 2021-01-03
    • 2022-12-01
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 2012-06-29
    相关资源
    最近更新 更多