--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
function [dbo].[fn_split] (
@str varchar
(8000),
--要分拆的字串
@spli varchar
(10)
--字串分隔符
(在此設定分隔符長度為或其它)
) returns
varchar
(8000)as
begin
declare
@returnstr varchar
(8000)
declare
@i int
declare
@splen int
set@str=
rtrim
(ltrim
(@str))
--去除原字串的左右空格
set@returnstr=
''if
@str<>
''begin
set @str=@str+
','set @splen=
len(@spli)
--獲取原字串字元個數
set @i=
charindex
(@spli,@str)
--得到分隔符第一次出現的位置
while @i > 0
begin
if @returnstr<>
''set @returnstr=@returnstr+
','+(
''''
+left(@str,@i-1)+
''''
)else
set @returnstr=(
''''
+left(@str,@i-1)+
''''
)set @str=
substring
(@str,@i+@splen,8000)
set @i=
charindex
(@spli,@str)
endend
return
@returnstr
end
--print dbo.fn_split('123,456,789',',') --
結果'123','456','789'
SQL 字串分隔函式
查詢某個 逗號分隔的字段 select from accinformation a where 啟用 in select from dbo.fnsplitstr ccaption,select from dbo.fnsplitstr 1,2,3 create function dbo fnsplit...
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...