重复记录的合并列值[重复]
Posted
技术标签:
【中文标题】重复记录的合并列值[重复]【英文标题】:merger column value of duplicate records [duplicate] 【发布时间】:2021-12-27 13:12:29 【问题描述】:我有一个向我返回记录的查询,当它找到超过 1 个值时记录重复
我想合并重复的记录,但我不知道如何
我听说过聚合函数,我应该朝这个方向发展吗?我真的不知道该怎么做
SELECT distinct LCM.eFolderID, LCM.ContractNumber
,(bU.FirstName + ' ' + bU.Surname) as WeryfikacjaUmowa
--,COUNT(LCM.ContractNumber)
FROM Metastorm.dbo.LeasingContractsMap LCM with(nolock)
left join Metastorm.dbo.eEvent eE with(nolock) on eE.eFolderID = LCM.EFOLDERID and eE.eActionName = 'AssignToContractVerificationAct'
left join Metastorm.dbo.bpm_Users bU with(nolock) on bU.eUserName = eE.eUserName
where LCM.ContractNumber not like '%purged%'
and LCM.ContractNumber = '37/1276/20'
结果
我想要的结果
【问题讨论】:
Bad habits : Putting NOLOCK everywhere 【参考方案1】:在sql server中使用group by
时,可以使用string_agg
聚合字符串列。
试试这个:
with u as
(SELECT distinct LCM.eFolderID, LCM.ContractNumber
,(bU.FirstName + ' ' + bU.Surname) as WeryfikacjaUmowa
--,COUNT(LCM.ContractNumber)
FROM Metastorm.dbo.LeasingContractsMap LCM with(nolock)
left join Metastorm.dbo.eEvent eE with(nolock) on eE.eFolderID = LCM.EFOLDERID and eE.eActionName = 'AssignToContractVerificationAct'
left join Metastorm.dbo.bpm_Users bU with(nolock) on bU.eUserName = eE.eUserName
where LCM.ContractNumber not like '%purged%'
and LCM.ContractNumber = '37/1276/20')
select eFolderID, ContractNumber, string_agg(WeryfikacjaUmowa, ' ') as WeryfikacjaUmowa
from u
group by eFolderID, ContractNumber
【讨论】:
" 'string_agg' 不是可识别的内置函数名。"以上是关于重复记录的合并列值[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如果所需的列值重复 [重复],则 SQL 查询以获取顶部记录