sql列转行逗号连接_Sql Server 列转逗号隔开的字符串 和 逆转

SELECT STUFF(( SELECT ‘,‘ + ModifyBy

FROM dbo.tbl_stationprofile

FOR

XML PATH(‘‘)

), 1, 1, ‘‘) AS Name

逗号隔开的字符串转表

USE [MBG3SDB]

GO

/****** Object: UserDefinedFunction [dbo].[GetIDList] Script Date: 2017/9/12 10:13:38 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

-- =============================================

-- Description: 将字符串转换为列表(@InStr:字符串,@sp:分隔符)

-- =============================================

ALTER FUNCTION [dbo].[GetIDList](@InStr VARCHAR(max)=‘‘,@sp CHAR(1)=‘,‘)

RETURNS @TempTable TABLE ([ID] VARCHAR(50))

AS

BEGIN

IF @InStr IS NULL OR rtrim(ltrim(@InStr))=‘‘

RETURN

DECLARE @FirstID VARCHAR(50),@SpIndex int

IF(@sp IS NULL OR @sp=‘‘)

SET @sp=‘,‘

WHILE @InStr<>‘‘

BEGIN

SET @SpIndex=CHARINDEX(@sp,@InStr)

IF(@SpIndex=1)

BEGIN

SET @InStr=SUBSTRING(@InStr,2,DATALENGTH(@InStr))

CONTINUE

END

ELSE IF(@SpIndex>1)

BEGIN

SET @FirstID=SUBSTRING(@InStr,1,@SpIndex-1)

SET @InStr=SUBSTRING(@InStr,@SpIndex+1,DATALENGTH(@InStr)[email protected]+1)

END

ELSE

BEGIN

SET @FirstID=@InStr

SET @InStr=‘‘

END

INSERT INTO @TempTable SELECT @FirstID

END

RETURN

END

/**

示例

select * from dbo.GetIDList(‘5#6#7‘,‘#‘)

**/

自己创建表函数自己试吧。下面就不上图了。

时间: 09-18

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值