Sql server 如何通过执行下面的函数获得所需的输出
我的问题是我写了一个函数Sql server 如何通过执行下面的函数获得所需的输出,sql-server,Sql Server,我的问题是我写了一个函数 ALTER FUNCTION [dbo].StringSplitting_23012012 (@string NVARCHAR(MAX), @Delimiter NVARCHAR(1)) RETURNS @Temp TABLE (string NVARCHAR(MAX)) AS BEGIN DECLARE @p int SET @p = 0 --SET @string = (@string + @Delimiter) WHILE charin
ALTER FUNCTION [dbo].StringSplitting_23012012 (@string NVARCHAR(MAX),
@Delimiter NVARCHAR(1))
RETURNS
@Temp TABLE (string NVARCHAR(MAX))
AS
BEGIN
DECLARE @p int
SET @p = 0
--SET @string = (@string + @Delimiter)
WHILE charindex(@Delimiter,@string) < 0 --,@p) <> 0
BEGIN
INSERT into @Temp
SELECT substring(@string,@p,charindex(@Delimiter,@string)) --+ @p)
--select substring(@string,5,15) SET @p = charindex(@Delimiter,@string) --1
END
RETURN
END
我得到的结果是
SPLA-WINSVRSTD #P19-1999 QTY1
SPLA-WINSVRSTD #P12-2999 QTY2
SPLA-WINSVRSTD #P19-1399 QTY3
SPLA-WINSVRSTD #P19-1399 QTY4
SPLA-WINSVRSTD #P59-5999 QTY5
SPLA-WINSVRSTD #P69-6999 QTY6
SPLA-WINSVRSTD #P79-7999 QTY7
SPLA-WINSVRSTD #P69-6999 QTY8
到目前为止,它是好的,但我需要像这样的输出
SPLA P12-2999 QTY2
SPLA P19-1399 QTY3
SPLA P19-1399 QTY4
SPLA P59-5999 QTY5
SPLA P69-6999 QTY6
SPLA P79-7999 QTY7
SPLA P69-6999 QTY8
你能帮我写一个函数或过程来获得所需的输出吗?我建议使用这个函数,如下所示:
[格式清晰]
SELECT * FROM [dbo].StringSplitting(
REPLACE('SPLA-WINSVRSTD #P19-1999 QTY1:
SPLA-WINSVRSTD #P12-2999 QTY2 : SPLA-WINSVRSTD #P19-1399 QTY3 :
SPLA-WINSVRSTD #P19-1399 QTY4 : SPLA-WINSVRSTD #P59-5999 QTY5 :
SPLA-WINSVRSTD #P69-6999 QTY6 : SPLA-WINSVRSTD #P79-7999 QTY7 :
SPLA-WINSVRSTD #P69-6999 QTY8', '-WINSVRSTD #','')
,':')
[用于复制和粘贴]
SELECT * FROM [dbo].StringSplitting(REPLACE(
'SPLA-WINSVRSTD #P19-1999 QTY1 : SPLA-WINSVRSTD #P12-2999 QTY2 : SPLA-WINSVRSTD #P19-1399 QTY3 : SPLA-WINSVRSTD #P19-1399 QTY4 : SPLA-WINSVRSTD #P59-5999 QTY5 : SPLA-WINSVRSTD #P69-6999 QTY6 : SPLA-WINSVRSTD #P79-7999 QTY7 : SPLA-WINSVRSTD #P69-6999 QTY8'
, '-WINSVRSTD #','') ,':')
SELECT * FROM [dbo].StringSplitting(REPLACE(
'SPLA-WINSVRSTD #P19-1999 QTY1 : SPLA-WINSVRSTD #P12-2999 QTY2 : SPLA-WINSVRSTD #P19-1399 QTY3 : SPLA-WINSVRSTD #P19-1399 QTY4 : SPLA-WINSVRSTD #P59-5999 QTY5 : SPLA-WINSVRSTD #P69-6999 QTY6 : SPLA-WINSVRSTD #P79-7999 QTY7 : SPLA-WINSVRSTD #P69-6999 QTY8'
, '-WINSVRSTD #','') ,':')