sql截取逗号前面的字符串
select substring('1<br>23<br>456<br>7890',CHARINDEX('1<br>23<br>456<br>7890','<br>',1,2)+4,(CHARINDEX('1<br>23<br>456<br>7890','<br>',1,3)-CHARINDEX('1<br>23<br>456<br>7890','<br>',1,2)-4)) from table
这手旁是sqlserver的函数了
思路就是:获取第2个<br>的位置,加4(<br>这个字符串的长度),然后截取其之后到第三个<br>的长度的字符串。
这是substring 的api
SUBSTRING(string,start_position,[length]) 粗汪 求子字符串,返回字符串
解释:string 元字符串岩薯仔
start_position 开始位置(从0开始)
length 可选项,子字符串的个数
sql取第二个分隔符的数据
substr('字符串数返',
locate('<br>','字符串',locate('<br>','字符串')+1)+1,
locate('<br>','字数毕行符串', locate('<br>','字符串',locate('<br>','字符串')+1)+1))
有点乱,薯哗第二行是截取第二个分割符出现的位置+1,以此类推,一般超过第4个位置就写函数了,可以百度下,很多
sql截取逗号前面的字符串
create table #a(id int identity,col nvarchar(200))
insert into #a(col)
values('1<br>23<br>456<br>7890'),('睁高1<br>456<br>3<br>55'),('34<br>1<br>43<br>2')
;with cte as(
select *,convert(xml,'悉蠢尺<br>'+rtrim(replace(col,'<br>','</档老br><br>'))+'</br>') as col2 from #a
)select id,col2.value('(/br)[3]','nvarchar(max)') as col from cte
id col
----------- ------------
1 456
2 3
3 43