第一步:首先创建一个表值函数f_split3,master 是系统数据库,数据库名称可改成自己的数据库名,代码如下,直接执行即可。
USE [master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create FUNCTION [dbo].[f_split3]
(
@String VARCHAR(MAX),
@Delimiter VARCHAR(MAX)
)
RETURNS @temptable TABLE (items VARCHAR(MAX))
AS
BEGIN
-- Declare the return variable here
DECLARE @idx INT=1
DECLARE @slice VARCHAR(MAX)
IF LEN(@String) < 1 OR LEN(ISNULL(@String,'')) = 0
RETURN
WHILE @idx != 0
BEGIN
SET @idx = CHARINDEX(@Delimiter,@String)
IF @idx != 0
SET @slice = LEFT(@String,@idx - 1)
ELSE
SET @slice = @String
IF LEN(@slice) > 0
INSERT INTO @temptable(items) VALUES(@slice)
SET @String = RIGHT (@String, LEN(@String) - @idx)
IF LEN(@String) = 0
BREAK
END
RETURN
END
第二步:直接调用f_split3函数,传入需要分割的字符串、
select * from f_split3('字符串', '分割符')
例如:select * from f_split3('苹果,桃子,榴莲,香蕉,橙子', ',')
结果如下: