sql中如何使一列中的多个重复数据只显示第一条
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中如何使一列中的多个重复数据只显示第一条相关的知识,希望对你有一定的参考价值。
按照左边如果有重复的就取右边的第一个
1、首先在如下图中是一个Student的数据表,这里需要对数据表中的StudentName数据表中的单个的数据进行修改。
2、同样的方法这里首先打开数据库查询语句,输入查询语句先查询一下数据表中的数据内容。
3、输入查询语句,:Select * from Student,输入完毕之后选择全部内容,然后选择执行按钮,执行SQL语句。
4、执行完毕之后,在Student表中的第四行数据(StudentName中的“崔”)这里需要把它修改为“亮亮”,注意这里只要修改的是单个数据,并不是整行数据。
5、在数据表上,用鼠标右击选择里面的“编辑前200行”。
6、编辑完毕之后,就可以在查询表中看到所有数据了,如下图中红线内容。
参考技术Aselect 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 雷鸣,谢涛,张玲瑜,张潇
怎么办
以上是关于sql中如何使一列中的多个重复数据只显示第一条的主要内容,如果未能解决你的问题,请参考以下文章