我想在第一个逗号之后和第二个逗号之前获取字符串。
对于以下示例,输出应为7GWW90330P15
。
在SQL中
7GWW90330P14,7GWW90330P15,7GWW90330P16,7GWW90330P17
答案 0 :(得分:1)
使用此方法:
SELECT SUBSTRING(
colname
, CHARINDEX(',',colname) + 1
, CHARINDEX(',',colname,CHARINDEX(',',colname)) - 1
)
答案 1 :(得分:0)
如果始终是第二个字符串
select *
from
(
select col = '7GWW90330P14,7GWW90330P15,7GWW90330P16,,7GWW90330P17'
) t
cross apply
(
select idx1 = charindex(',', col),
col1 = substring(col, 1, charindex(',', col) - 1)
) f
cross apply
(
select idx2 = charindex(',', col, idx1 + 1),
col2 = substring(col, idx1 + 1, charindex(',', col) - 1)
) s
您可以将其扩展到第三,第四等。但是,如果您正在寻找更通用的名称,例如nth
字符串,则需要使用字符串拆分功能。
答案 2 :(得分:0)
如果您希望第二个字符串和代码的大小相同,则:
select (case when str like ',,%'
then ''
when str like ',%'
then substring(str, 2, 12)
else substring(str, 13, 12)
end)
这不能很好地概括,但确实可以回答您的特定问题。