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】:要简单地遍历列并从该列中删除重复项,例如 A
到 Z
,您可以这样做:
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中如何使一列中的多个重复数据只显示一次, 求大神指导,使得图中的班简名重复的只显示一次。的主要内容,如果未能解决你的问题,请参考以下文章