sql中如何使一列中的多个重复数据只显示一次, 求大神指导,使得图中的班简名重复的只显示一次。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中如何使一列中的多个重复数据只显示一次, 求大神指导,使得图中的班简名重复的只显示一次。相关的知识,希望对你有一定的参考价值。

哪些重复的数如果只显示一次,那么后面的信息显示成什么?在查询结果中必须是要重复的,总不至于某个专业没有班号或地点吧。至于是否在给最终用户的界面中显示那是编程人员的事。
如果非得将将除第一条外的相同数据隐藏,不是不可以。可以通过游标,每次读取一条记录,并将可能重复的数据保存到变量中,将结果插入到临时表中,读取下一条记录时,与前一次的值进行比较,如果相同,则插入临时表中时相应字段插入null。游标运行完后,输出临时表中的值即可。
参考技术A 2种方法,
1.在select后面加 distinct 可以过滤重复的数据, 点评:在海量数据下效率低
2.利用group by ,把查询到的字段都放在group by后面,点评:效率比distinct高,使用也比distinct麻烦点!
参考技术B 你难道是想象一个报表的样子 第一行有数据 后面相同的用空白显示么

如何一次删除多个列的单个列中的重复值

【中文标题】如何一次删除多个列的单个列中的重复值【英文标题】:How to remove duplicate values in an individual column for multiple columns at once 【发布时间】:2017-06-23 22:13:36 【问题描述】:

如何一次删除所有列中各个列中的重复值?

如果我在 Excel 中选择 Remove Duplicates 工具并选择了多个列,则假定我正在寻找重复的列。

我想要删除各个列中的重复项,但我不想单独单击每个列。

例如,假设我有一个包含 500 列的电子表格。 我想删除第 1 列(“A”)中的所有重复值,然后删除第 2 列(“B”)中的所有重复列,依此类推,直到第 500 列。

我的尝试:

    录制宏。结果:

    ActiveWindow.ScrollColumn = 1
    Columns("A:A").Select
    Application.CutCopyMode = False
    ActiveSheet.Range("$A$1:$A$582").RemoveDuplicates Columns:=1, Header:=xlYes
    

    如您所见,由于某些原因,它会自动选择“A”列。我不知道如何使它一般选择我选择的列的字母。呜呜呜……

    我尝试了以下方法:

    Col = Split(ActiveCell(1).Address(1, 0), "$")(0)
    Application.CutCopyMode = False
    ActiveSheet.Range("Col1:Col1581").RemoveDuplicates Columns:=1, Header:=xlYes
    

    但它也不起作用。

我该怎么做呢?


我正在使用 MS Excel 2010 (Professional Plus)

【问题讨论】:

你试过什么?应该是一个非常简单的宏 - 只需打开宏记录器,从 A 中删除重复项,然后从 B 中删除,然后停止记录器。然后,您应该对如何做有一个很好的框架。查找“遍历工作表中的列”,看看你能做什么。然后,如果您仍然遇到困难,我们很乐意帮助您编写代码。 @BruceWayne 我更新了问题以反映我的尝试。一个简单的录制宏不起作用。 【参考方案1】:

要简单地遍历列并从该列中删除重复项,例如 AZ,您可以这样做:

Sub removeDups()
Dim col As Range
For Each col In Range("A:Z").Columns
    With col
        .RemoveDuplicates Columns:=1, Header:=xlYes
    End With
Next col
End Sub

您可以根据需要进行调整,无论是将范围设置为等于您的选择,还是将范围扩展到 AZ

【讨论】:

以上是关于sql中如何使一列中的多个重复数据只显示一次, 求大神指导,使得图中的班简名重复的只显示一次。的主要内容,如果未能解决你的问题,请参考以下文章

excel一列数据中重复数据的只显示一次

如果另一列中的值是唯一的,那么如何在SQL中放置一个显示1的列,如果它是重复的则为0?

如何根据另一列中值的单一出现使一列中的所有值相同?

如何约束数据库表,使一列中只有一行可以具有特定值?

SQL如何将某一列中相同的数据合并

如何获取表中的所有数据,如果在一列中重复相同的值,该行应该计数一次?