Sql 将字符串拆分为多行
如何将一个字符串拆分为多行,但不使用输入表,而只使用一个字符串 例如,字符串为“abc、grt、asd、eee、78s” 输出应如下所示: abc grt 自闭症 eee 78s 我在这里看到了许多解决方案,但都使用一个表来存储一个或多个输入字符串 如何在不使用表格的情况下实现这一点Sql 将字符串拆分为多行,sql,string,split,apply,Sql,String,Split,Apply,如何将一个字符串拆分为多行,但不使用输入表,而只使用一个字符串 例如,字符串为“abc、grt、asd、eee、78s” 输出应如下所示: abc grt 自闭症 eee 78s 我在这里看到了许多解决方案,但都使用一个表来存储一个或多个输入字符串 如何在不使用表格的情况下实现这一点 谢谢创建以下函数 CREATE FUNCTION SplitString ( @Input NVARCHAR(MAX), @Character CHAR(1) ) RETURNS @Outpu
谢谢创建以下函数
CREATE FUNCTION SplitString
(
@Input NVARCHAR(MAX),
@Character CHAR(1)
)
RETURNS @Output TABLE (
Item NVARCHAR(1000)
)
AS
BEGIN
DECLARE @StartIndex INT, @EndIndex INT
SET @StartIndex = 1
IF SUBSTRING(@Input, LEN(@Input) - 1, LEN(@Input)) <> @Character
BEGIN
SET @Input = @Input + @Character
END
WHILE CHARINDEX(@Character, @Input) > 0
BEGIN
SET @EndIndex = CHARINDEX(@Character, @Input)
INSERT INTO @Output(Item)
SELECT SUBSTRING(@Input, @StartIndex, @EndIndex - 1)
SET @Input = SUBSTRING(@Input, @EndIndex + 1, LEN(@Input))
END
RETURN
END
GO
这听起来像是你在挣扎,因为你的数据没有被正确的标准化。这是什么类型和版本的数据库?
SELECT Item
FROM dbo.SplitString('abc,grt,asd,888,78s', ',')