XT_RSGL_KQSZ_LS表结构如下图:
CREATE TABLE XT_RSGL_KQSZ_LS(
KQFW VARCHAR(400)
)
其中KQFW字段以分割符 , 隔开
INSERT INTO XT_RSGL_KQSZ_LS SELECT 'AAA,BBBB,C' UNION SELECT '12,3'
实现的结果为
(number为前分隔符的下标值的后一位)
select
substring(a.kqfw , b.number , charindex(',',a.kqfw+',',b.number)-b.number)as result,
a.* from XT_RSGL_KQSZ_LS a join master..spt_values b on b.type='P'
where b.number=charindex(',',','+a.kqfw,b.number)
思路:就是找到前、后分隔符在KQFW字段的下标值
利用一个自然数自增的表(sqlserver自带的master..spt_values的number字段从0自增)
*charindex( expression1 , expression2 [ , start_location ] ) 对第三个参数比较陌生,就是从start_location开始对expression2进行匹配expression1
*substring(str, pos, len)