使用預存程序分割字串
修改後紀錄一下~
能在某些特殊狀況下會用到的預存程序,
能夠直接使用預存程序將字串分割。
下方的範例中,分割字元為3個,
如果需要增加~可以自己研究看看囉。
PS:使用方法一樣在範例裡面~
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[fnCharToTable]
--'程式名稱:字串分割
--add by Percy 2017/9/4
--SELECT * from dbo.fnCharToTable('abc,cde,edg',',')
(@strInputString NVARCHAR(4000) , @strSplitChar NVARCHAR(3))
RETURNS @tb_List TABLE (CODE_ID INT IDENTITY(1,1),CODE NVARCHAR(3) )
AS
BEGIN
DECLARE @intInputStringLength Int
DECLARE @intlPosition Int
DECLARE @intSplitChar Int
SET @intInputStringLength = LEN ( @strInputString )
SET @intlPosition=1
SET @intSplitChar=1
WHILE @intlPosition <= @intInputStringLength
BEGIN
SET @intSplitChar = CHARINDEX ( @strSplitChar , @strInputString , @intlPosition)
IF @intSplitChar = 0
BEGIN
INSERT @tb_List (CODE )
SELECT SUBSTRING( @strInputString , @intlPosition ,1+ @intInputStringLength - @intlPosition)
SET @intlPosition= @intInputStringLength + 1
END
ELSE
BEGIN
INSERT @tb_List ( CODE )
SELECT SUBSTRING( @strInputString , @intlPosition , @intSplitChar - @intlPosition)
SET @intlPosition = @intSplitChar+1
END
END
DELETE @tb_List WHERE RTRIM(CODE)=''
RETURN
END
沒有留言:
張貼留言