我正在使用产品数据库,试图从ID /颜色代码组合列中提取产品颜色,其中颜色代码始终是该列中最后一个连字符之后的字符串。问题在于连字符,产品ID和颜色代码的数量都可以不同。
这是四个示例:
ABC123-001 BCD45678-0165 S-XYZ999-M2235 A-S-ABC123-001
在这种情况下,颜色代码是001,0165,M2235,和001。将它们选择到自己的列中的最佳方法是什么?
001
0165
M2235
我认为以下是您想要的:
select right(col, charindex('-', reverse(col)) - 1)
如果您的值中可能没有连字符,请使用case:
case
select (case when col like '%-%' then right(col, charindex('-', reverse(col)) - 1) else col end)