2011-12-06 25 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%' 
関連する問題