我使用SQL Server 2008中我有一個名爲func_SPLIT(@Str as varchar(2000))
拆分功能,將採取類似「123,456,789」的字符串,並將其拆分成類似表的格式:SQL服務器:連接的數據導致以表格格式
Column:
123
456
789
所以,如果我選擇一個單獨的記錄,我可以在字符串分割表格式...後來加入他們的行列....
這裏是我試圖找出問題出去怎麼辦。
比方說,我有一個查詢:
Select Column1, Column2
from Table1
和它下面返回多個記錄:
Column1 Column2
a 11111, 22222, 33333
b 44444
c 55555, 66666
d 88888, 99999
有沒有一種方法可以讓我在列2所有這些值轉換成表格格式,所以我可以稍後加入他們...像這樣的格式如下:
Column1 Column2
a 11111
a 22222
a 33333
b 44444
c 55555
c 66666
d 88888
d 99999
這是分裂funcion
ALTER FUNCTION [dbo].[Split]
(
@RowData NVARCHAR(MAX),
@Delimeter NVARCHAR(MAX)
)
RETURNS @RtnValue TABLE
(
ID INT IDENTITY(1,1),
Data NVARCHAR(MAX)
)
AS
BEGIN
DECLARE @Iterator INT
SET @Iterator = 1
DECLARE @FoundIndex INT
SET @FoundIndex = CHARINDEX(@Delimeter,@RowData)
WHILE (@FoundIndex>0)
BEGIN
INSERT INTO @RtnValue (data)
SELECT
Data = LTRIM(RTRIM(SUBSTRING(@RowData, 1, @FoundIndex - 1)))
SET @RowData = SUBSTRING(@RowData,
@FoundIndex + DATALENGTH(@Delimeter)/2,
LEN(@RowData))
SET @Iterator = @Iterator + 1
SET @FoundIndex = CHARINDEX(@Delimeter, @RowData)
END
INSERT INTO @RtnValue (Data)
SELECT Data = LTRIM(RTRIM(@RowData))
RETURN
END
謝謝
我們可以看到分割功能,你有嗎? –
更新了分割功能。感謝您關注這個... – milacay