sql中如何使一列中的多个重复数据只显示第一条

Posted

tags:

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

按照左边如果有重复的就取右边的第一个

1、首先在如下图中是一个Student的数据表,这里需要对数据表中的StudentName数据表中的单个的数据进行修改。

2、同样的方法这里首先打开数据库查询语句,输入查询语句先查询一下数据表中的数据内容。

3、输入查询语句,:Select * from Student,输入完毕之后选择全部内容,然后选择执行按钮,执行SQL语句。

4、执行完毕之后,在Student表中的第四行数据(StudentName中的“崔”)这里需要把它修改为“亮亮”,注意这里只要修改的是单个数据,并不是整行数据。

5、在数据表上,用鼠标右击选择里面的“编辑前200行”。

6、编辑完毕之后,就可以在查询表中看到所有数据了,如下图中红线内容。

参考技术A

select AdviceName,max(authName_1) as authName_1 from table

group by AdviceName

说明:

    因为你只选择这1个列作为相同条件列,所以我分组条件就这样写的

    因为你要取第一个人名的话,max就OK了


觉得好,就请采纳

追问

如果我选择AdviceTime和AdviceName作为相同列的条件,是不是group by 后边要加上AdviceTimene ?

追答

select AdviceName,AdviceTime,max(authName_1) as authName_1 from table
group by AdviceName,AdviceTime

像这样,几个相同列条件就加几个

本回答被提问者采纳

SQL 怎么将一列中的数据按一个分隔符分成多列显示

with HrmResource(id,lastname) as (
select 167,'段秋月' union all
select 170,'杨子军'
)
,formtable_main_78(Requestid,WTCW,XMCY) as (
select 722,'xxxxx公司','167,170'
)
 
select a.*,stuff(c.[col],1,1,'') [项目名称]
from formtable_main_78 a
cross apply 
(select ','+lastname from HrmResource b 
where charindex(','+convert(varchar,b.id)+',',','+a.XMCY+',')>0 
for xml path('')) c([col])

结果:

追问

没对啊,你给的这种解决办法是固定的啊,问题是XMCY这列值不固定。
可能出现:
722 xxxx公司 167,170 段秋月,杨子军
723 yyyy公司 157,158,159,161 雷鸣,谢涛,张玲瑜,张潇
怎么办

参考技术A 设计这样的表的人都很牛逼本回答被提问者采纳 参考技术B 这是谁设计的表结构?

以上是关于sql中如何使一列中的多个重复数据只显示第一条的主要内容,如果未能解决你的问题,请参考以下文章

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

Oracle中如何删除重复数据

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

SQL中如何统计查询结果中某一列重复值的个数?

集合中有重复的数是取其中一个?

sql根据某一个字段重复只取第一条数据