这里数据库中的一列。。
A=123,B=32,C=444,D=1R13
A=123,B=32,C=44,D=1R13
A=123,B=32,C=444,D=1R13
A=123,B=32,C=4444,D=1R13
现在只要取C的值。(也是说那些4)
刚开始原来以为是用两个函数就可以了(SUBSTRING,charindex)
但是C的值长度又定。。请大家帮帮忙
A=123,B=32,C=444,D=1R13
A=123,B=32,C=44,D=1R13
A=123,B=32,C=444,D=1R13
A=123,B=32,C=4444,D=1R13
现在只要取C的值。(也是说那些4)
刚开始原来以为是用两个函数就可以了(SUBSTRING,charindex)
但是C的值长度又定。。请大家帮帮忙
parsename(replace(col,',','.'), ?) --> ? 用1,2,3,4來取
select replace(parsename(replace('A=123,B=32,C=444,D=1R13',',','.'),2),'c=','')
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
444(1 行受影响)
select replace(parsename(replace(列名,',','.'),2),'c=','')
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
444(1 行受影响)
if object_id('[ta]') is not null drop table [ta]
go
create table [ta]([col] varchar(24))
insert [ta]
select 'A=123,B=32,C=444,D=1R13' union all
select 'A=123,B=32,C=44,D=1R13' union all
select 'A=123,B=32,C=444,D=1R13' union all
select 'A=123,B=32,C=4444,D=1R13'--------------------------------查询开始------------------------------select substring([col],charindex('C=',[col])+2,charindex('D=',[col])-charindex('C=',[col])-3)
from [ta]
/*
------------------------
444
44
444
4444(4 行受影响)
*/
set @str='A=123,B=32,C=444,D=1R13'
select substring(@str,charindex('C',@str),charindex('D',@str)-1-charindex('C',@str))
----------------------------------------------------------------------------------------------------
C=444
(
ID int identity,
Code varchar(200)
)INSERT @tb
select 'A=123,B=32,C=444,D=1R13' union all
select 'A=123,B=32,C=44,D=1R13'
--查询
select substring(code,charindex('c=',code)+3,charindex(',d=',code)-charindex('c=',code)-3)
from @tb
--结果
/*(2 行受影响)--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
44
4(2 行受影响)*/
set @var='A=123,B=32,C=444,D=1R13'
select SUBSTRING(@var,PATINDEX('%C%',@var)+2,PATINDEX('%,D%',@var)-PATINDEX('%C%',@var)-2)
----------------------------------------------------------------------------------------------------
444(1 行受影响)