2011-12-06 71 views
3

我有一些我想從我的SQL Server表中解析出的關鍵值。下面是這些鍵值的一些例子:在某個字符之後但在另一個字符之前獲取SQL子串

R50470B50469

B17699C88C68AM

R22818B17565C32G16SU

B1444

什麼,我想走出字符串,是所有發生的數在字符'B'之後,但在任何其他字母字符之前,如果存在,例如'C'。我怎樣才能在SQL中做到這一點?

回答

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%' 
相關問題