【发布时间】:2013-10-08 12:45:31
【问题描述】:
我正在尝试创建一个函数,该函数将用逗号分隔并插入到包含“Num”和“String”列的表中。
输入字符串看起来像
Number 在 num 列中,而 name 在 string 列中。
到目前为止我有
drop function dbo.GetCommaSplit;
go
CREATE FUNCTION dbo.GetCommaSplit (@String varchar(max))
RETURNS table
AS
RETURN
(
WITH Splitter (Num, String)
AS
FROM dbo.Numbers
WHERE Num <= LEN(@String)
AND (SUBSTRING(@String, Num - 1, 1) = N',' OR Num = 0)
)
SELECT
RTRIM(LTRIM(String)) AS Word
FROM Splitter
WHERE String <> ''
);
GO
但这会拆分所有内容并每次都给出一个新行,这不是我想要的。
\ 干杯
【问题讨论】:
-
所以你想要像'Michael,Tito,Jermaine,Marlon'和'1,2,3,4'这样的输出只有一行你给的字符串???
-
一行是 1 |迈克尔,下一行是 2 | tito..等等,这有意义吗?
-
你想要给定字符串中的 8 行 ???
-
给定的字符串将有 4 行 2 列
标签: sql sql-server stored-procedures user-defined-functions