多個品號的復數查詢SP

SP過程中調用的SQL方法 將復數品號拼接為條件

USE [local]
GO
/****** Object:  UserDefinedFunction [dbo].[Split]    Script Date: 2017/4/12 8:45:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[Split]
(@SourceText varchar(max), @Delimiter char(1))

returns @Table table(StringID int, Value varchar(max))
AS
begin
declare @count integer

declare @curPos integer
declare @textPartLength integer
declare @prevPos integer
declare @nextOcc integer
declare @textPart varchar(max)

set @count = 1
set @prevPos = 0
set @curPos = 0
set @nextOcc = charindex(@Delimiter, @SourceText)

while @nextOcc > 0
begin
set @curPos = @nextOcc
set @nextOcc = charindex(@Delimiter, @SourceText, @nextOcc + 1)
set @textPartLength = @curPos - @prevPos

-- grab the substring from the source text and remove the delimitera
set @textPart = substring(@SourceText, @prevPos , @textPartLength)
set @textPart = replace(@textPart, @Delimiter, '')

insert into @Table (StringID, Value) values(@count, @textPart)

set @prevPos = @curPos
set @count +=  1
end
    
    
    -- get any text after the last delimiter
    set @textPartLength = LEN(@SourceText) - (@prevPos - 1)
    set @textPart = substring(@SourceText, @prevPos , @textPartLength)
    set @textPart = replace(@textPart, @Delimiter, '')
    if(LEN(@textPart) > 0)
    insert into @Table values (@count, @textPart)
    
    
    
    return
    
    end
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容