SQL 字串分隔函式

2022-07-13 10:09:09 字數 1678 閱讀 4561

查詢某個 逗號分隔的字段

select *   from accinformation a where'啟用

'in( select * from dbo.fnsplitstr(ccaption,','

)) select * from dbo.fnsplitstr('

1,2,3

',',

')

create function [dbo].[fnsplitstr] (

@stext nvarchar(max),

@sdelim char(1)

)returns @retarray table (

value varchar(

100))as

begin

declare

@posstart bigint,

@posnext bigint,

@vallen bigint,

@svalue nvarchar(

100);

if @sdelim is null

begin

if len(@stext)>100 set @stext = substring(@stext, 1, 100

)

insert @retarray (value)

values (@stext);

endelse

begin

set @posstart = 1

; while @posstart

<=len(@stext)

begin

set @posnext =charindex(@sdelim, @stext, @posstart);

if @posnext

<= 0

set @vallen = len(@stext) - @posstart + 1

; else

set @vallen = @posnext -@posstart;

set @svalue =substring(@stext, @posstart, @vallen);

set @posstart = @posstart + @vallen + 1

; if len(@svalue) > 0

begin

if len(@svalue)>100 set @svalue = substring(@svalue, 1, 100

)

insert @retarray (value)

values (@svalue);

endend

endreturn

end

可能報錯  

錯誤原因:

相容性不足

解決方法:

選中指定資料庫->右鍵選擇「屬性」->選項->相容性級別->選擇 sql server 2005(90)

sql 字串分隔函式

declare str varchar max declare i int set str 123,456,789 set i charindex str print i print left str,i 1 分隔字串 例如 123,456,789 返回 例如 123 456 789 create ...

SQL根據字串B分隔字串A

建立錶值函式 1 create function dbo f split 2 3 splitstring nvarchar max 源字串a 4 separator nvarchar 10 分隔字串b,預設為空格5 6returns splitstringstable table 輸出的資料表7 8...

字串分隔 查詢函式

原型 extern char strtok char s,char delim 用法 include 功能 分解字串為一組標記串。s為要分解的字串,delim為分隔符字串。說明 首次呼叫時,s必須指向要分解的字串,隨後呼叫要把s設成null。strtok在s中查詢包含在delim中的字元並用null...