SQL Server - 选择最后一个连字符后面的所有字符的子字符串

2024-02-11

我正在使用产品数据库,尝试从组合的 ID/颜色代码列中提取产品颜色,其中颜色代码始终是列中最后一个连字符后面的字符串。问题在于连字符的数量、产品 ID 和颜色代码都可能不同。

这里有四个例子:

ABC123-001
BCD45678-0165
S-XYZ999-M2235
A-S-ABC123-001

在这种情况下的颜色代码是001, 0165, M2235, and 001。将这些内容选择到自己的专栏中的最佳方法是什么?


我认为以下内容可以满足您的要求:

select right(col, charindex('-', reverse(col)) - 1)

如果值中可能没有连字符,则使用case:

select (case when col like '%-%'
             then right(col, charindex('-', reverse(col)) - 1)
             else col
        end)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server - 选择最后一个连字符后面的所有字符的子字符串 的相关文章

随机推荐