在数据库中将同一个字段的多个值用逗号分开,并且合并成一列的方法

在数据库中将同一个字段的多个值用逗号分开,并且合并成一列的方法如下:

在数据库中创建一个自定义函数:

  CREATE   FUNCTION   f_catString(@id   uniqueidentifier)  
  RETURNS   NVARCHAR(1000)  
  AS  
        BEGIN  
            DECLARE   @s   NVARCHAR(1000)  
            SET   @s=''  
            SELECT   @s=@s+','+Name  
            FROM StaffArchive
            INNER JOIN NoticeChecker
            ON StaffArchive.StaffID=NoticeChecker.CheckerID
            WHERE   NoticeChecker.CheckNoticeID=@id
            return(stuff(@s,1,1,''))  
        END  
  GO

然后在查询语句中进行该方法的调用:

 

SELECT *
FROM

SELECT CheckNotice.CheckNoticeID AS CNI1,dbo.f_catString(CheckNoticeID) AS CheckerName
FROM CheckNotice) AS CN1
INNER JOIN
(SELECT CheckNotice.CheckNoticeID AS CNI2,CheckNoticeNumber,CreatNoticeTime
,CheckNotice.WorkNo,StaffArchive.[Name],Station.strStationName,ShiftConfig.ShiftName
,CASE CheckNoticeTypeID WHEN 0 THEN '一般违纪' WHEN 2 THEN '严重违纪' ELSE '表扬' END AS CheckName
,AntiDisciplineTypeConfig.AntiDisciplineTypeName
,WorkGroupConfig.WorkGroupName,LaneConfig.LaneName
FROM CheckNotice
INNER JOIN StaffArchive ON CheckNotice.StaffID=StaffArchive.StaffID
INNER JOIN AntiDisciplineTypeConfig ON AntiDisciplineTypeConfig.AntiDisciplineTypeID=CheckNotice.AntiDisciplineTypeID
INNER JOIN Station ON CheckNotice.StationID=Station.StationId
INNER JOIN ShiftConfig ON CheckNotice.ShiftID=ShiftConfig.ShiftID
INNER JOIN LaneConfig ON CheckNotice.LaneRecordID=LaneConfig.LaneRecordID
INNER JOIN WorkGroupConfig ON CheckNotice.WorkGroupRecordID=WorkGroupConfig.[ID]
WHERE CheckNotice.CreatedRecordTime BETWEEN '2008-10-1 00:00:00' AND '2008-10-31 00:00:00'
AND HandleStatus=2
) AS CN2
ON CN1.CNI1=CN2.CNI2
ORDER BY CreatNoticeTime DESC
;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值