查詢某個 逗號分隔的字段
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...