在SQL中,可以使用函数或正则表达式来拆分字符串。下面是两种常用的解决方法的示例:
方法1:使用函数
-- 创建字符串分割函数
CREATE FUNCTION dbo.SplitString
(
@string NVARCHAR(MAX),
@delimiter NVARCHAR(10)
)
RETURNS @result TABLE (item NVARCHAR(MAX))
AS
BEGIN
DECLARE @start INT, @end INT
SET @start = 1
SET @end = CHARINDEX(@delimiter, @string)
WHILE @end > 0
BEGIN
INSERT INTO @result(item)
SELECT SUBSTRING(@string, @start, @end - @start)
SET @start = @end + LEN(@delimiter)
SET @end = CHARINDEX(@delimiter, @string, @start)
END
INSERT INTO @result(item)
SELECT SUBSTRING(@string, @start, LEN(@string) - @start + 1)
RETURN
END
-- 使用字符串分割函数
DECLARE @inputString NVARCHAR(MAX) = 'apple,banana,orange'
SELECT item
FROM dbo.SplitString(@inputString, ',')
方法2:使用正则表达式
-- 使用正则表达式分割字符串
DECLARE @inputString NVARCHAR(MAX) = 'apple,banana,orange'
SELECT value
FROM STRING_SPLIT(@inputString, ',')
注意:方法2适用于SQL Server 2016及更高版本。如果使用的是较早的版本,可以使用方法1中的自定义函数来实现字符串分割操作。