2012-01-06 12 views
2

私はと同様の値を含む列があります。分割数字と文字

034004   
034010   
06012AB   
06012C   
06012D   
06012P    
06026C   
06026P 

を数字や文字などの2つの別々の列にこれらを分離または分割する方法はありますか?すべての数字に文字が含まれているわけではありませんか?

私は(おそらく)それは、常に番号のいずれかのグループである手紙の一つのグループを想定すると、右の直接

+0

文字を混在させることができますか(つまり12BA34CD)、それは常に数字になり、その後に文字がありますか? SQLの文字列関数はそれほど素晴らしいものではありませんが、あなたが求めているものはおそらくそれらで処理できます。 – Sparky

+0

それは常に数字の後ろに文字(もしあれば)の設定フォーマットです – user1086159

答えて

5

に私を指すことができます何のためにSQL Server Management Studioの2005事前に

乾杯を使用しています

SELECT SUBSTRING(YourCol, 0, P), 
     SUBSTRING(YourCol, P, 8000) 
FROM YourTable 
     CROSS APPLY(SELECT PATINDEX('%[^0-9]%', YourCol + 'A')) Split(P) 
+0

数字と文字を2列に分割するのにうまくいきました。よろしくお願いします。 – user1086159

+0

この回答をありがとう、それは私のために働いた。しかし私はスプリット(P)で何をしたのか分かりません。あなたはそれを説明できますか? – ristonj

+0

@ristonjそれは、 'PATINDEX( '%[^ 0-9]%'、YourCol + 'A')'という式の結果を、 'SELECT'節で参照できる' P'のエイリアスより長い表現を繰り返す必要はありません。 –