-4
如何将字符串拆分为多行,但不使用输入表,只是一个字符串?将字符串拆分为多行
实施例中,字符串为 'ABC,GRT,ASD,EEE,78S'
输出应该是这样的:
ABC
GRT
ASD
eee
78s
我在这里看到很多解决方案,但都使用一个表格存储一个或多个输入字符串。
如何在不使用表格的情况下实现此目的?
谢谢
如何将字符串拆分为多行,但不使用输入表,只是一个字符串?将字符串拆分为多行
实施例中,字符串为 'ABC,GRT,ASD,EEE,78S'
输出应该是这样的:
ABC
GRT
ASD
eee
78s
我在这里看到很多解决方案,但都使用一个表格存储一个或多个输入字符串。
如何在不使用表格的情况下实现此目的?
谢谢
创建以下功能。
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', ',')
这听起来像你挣扎,因为你的数据还没有正确规范化。 – Phylogenesis
这是什么类型和版本的数据库? – LukStorms