我想从我的SQL Server表中解析一些键值。以下是这些关键值的一些示例:
R50470B50469
B17699C88C68AM
R22818B17565C32G16SU
B1444
我想要从字符串中获取的是所有在字符“B”之后但在任何其他字母字符之前出现的数字,如果它存在,例如“C”。我怎样才能在SQL中执行此操作?
答案 0 :(得分:2)
WITH VALS(Val) AS
(
SELECT 'R50470B50469' UNION ALL
SELECT 'R22818B17565C32G16SU' UNION ALL
SELECT 'R22818B17565C32G16SU' UNION ALL
SELECT 'B1444'
)
SELECT SUBSTRING(Tail,0,PATINDEX('%[AC-Z]%', Tail))
FROM VALS
CROSS APPLY
(SELECT RIGHT(Val, LEN(Val) - CHARINDEX('B', Val)) + 'X') T(Tail)
WHERE Val LIKE '%B%'