一、sql分割字串,返回臨時表
方法一:
1create
function
[dbo
].[f_split]2
(3@cvarchar(2000),--
需要分割的字串(例如:1,2,3,4,5 我|和|你)
4@split
varchar(2)--
分隔符(例如 , | $)5)
6returns
@ttable(col varchar(200))--
返回表7as8
begin
9while(charindex(@split,@c)<>0)
10begin
11insert
@t(col) values (substring(@c,1,charindex(@split,@c)-1))
12set@c=
stuff(@c,1,charindex(@split,@c),'')13
end14
insert
@t(col) values (@c)15
return
16end
方法二:
1create
function
[dbo
].[f_split]2
(3@str
varchar(2000),--
需要分割的字串(例如:1,2,3,4,5 我|和|你)
4@spliter
varchar(2)--
分隔符(例如 , | $)5)
6returns
@tbtable(ch varchar(200))--
返回表7as8
begin
9declare
@num
int,@pos
int, @nextpos
int10
set@num=0
11set
@pos=1
12while(@pos
<=
len(@str
))13
begin
14select
@nextpos
=charindex(@spliter, @str, @pos)15
if(@nextpos=0
or@nextpos
isnull)16
select
@nextpos
=len(@str) +117
insert
into
@tbvalues(rtrim(ltrim(substring(@str, @pos, @nextpos
-@pos
))))
18select
@pos
=@nextpos+1
19end
20return
21end
二、sql分割字串,返回元素個數
createfunction
f_getarraylength
(
@str
varchar(2000),--
需要分割的字串(例如:1,2,3,4,5 我|和|你)
@split
varchar(2)--
分隔符(例如 , | $)
)returns
intas
begin
declare
@location
intdeclare
@start
intdeclare
@length
intset
@str
=ltrim(rtrim(@str
))
set@location
=charindex(@split,@str
)
set@length=1
while
@location
<>
0begin
set@start
=@location+1
set@location
=charindex(@split,@str,@start
)
set@length
=@length+1
endreturn
@length
end
SQL 字串分割函式
create function dbo f split sourcesql varchar 8000 strseprate varchar 10 returns temp table a varchar 100 as begin declare iint set sourcesql rtrim lt...
SQL 字串分割函式
create function dbo split input varchar max split varchar max returns table table col varchar max as begin while charindex split,input 0 begin insert ...
Spark 按兩種 符號 分割字串
元資料 string str 顏淵 公子蝶 恭喜!水城十二呆包子 芳心縱火犯後繼有人!安娜 專業土撥鼠 恭喜恭喜!百萬龍蝦店少主登場!絕対白2咩黙示錄 撒金剛出生了!stoness打著哈欠說 恭喜撒老師!盛世美顏後繼有人!不能發芽的種子 恭喜!卡李 起什麼名字?麥吉da法好太師囧 恭喜撒老 要求 按...