USE [TAFEL_PACK]
GO
/****** Object: UserDefinedFunction [dbo].[SplitSubString] Script Date: 04/12/2019 10:30:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE function [dbo].[SplitSubString]
(
@Expression varchar(8000)
,@Delimiter varchar(100)
,@ int
)
returns varchar(8000)
as
begin
declare @p int,
@temp varchar(8000)
set @p = CharIndex(@Delimiter,@Expression)
set @temp = @Expression
if @p > 0
begin
set @p = @p + len(@Delimiter) - 1
end
declare @i int
set @i = 1
while @i < @
begin
set @i = @i + 1
set @Expression = substring (@Expression, @p + 1,len(@Expression) - @p )
set @p = CharIndex(@Delimiter,@Expression)
if @p > 0
begin
set @p = @p + len(@Delimiter) - 1
end
else
begin
break
end
end
declare @s varchar(1000)
if @p = 0 and @i = @
begin
if @ > 1
begin
if len(@Expression) < len(@temp)
begin
set @s=@Expression
end
else
begin
set @s = null
end
end
else
begin
set @s=@Expression
end
end
else if @i = @
begin
set @s = substring(@Expression, 1,@p - len(@Delimiter))
end
return @s
end
GO
sql server 2008 数据库关于字段值为多值的时候,将其分开为几列形式
原文:https://www.cnblogs.com/hu-kang/p/10694493.html