2016-12-02 7 views
0

データを部分文字列に変換する方法。例えば、私はこのようなデータを持っている:SQL ServerでsubstringとPatIndexを使用する方法

+----------------------+ 
|John123123412412wqeqw | 
|May1231243334234wawdd | 
|Jo02930124010284jahdj | 
|dy827837127912938hygb | 
+--------------------- + 

私は、出力は次のようになりたい:

+----------------------+ 
|John     | 
|May     | 
|Jo     | 
|dy     | 
+--------------------- + 

今のところ、私は私のスクリプトでサブストリングとCHARINDEXを適用する方法を理解していません。

ありがとうございます!

+0

文字列から何を取得しようとしていますか?私は開始と終了の要件を意味する? – Searching

答えて

3

LEFTPATINDEXには、PATINDEX('%[0-9]%', 'John123123412412wqeqw')などの数字に一致するパターンで試してみることができます。

サンプルコード

DECLARE @Text VARCHAR(500); 
SET @Text = 'John123123412412wqeqw'; 

SELECT LTRIM(RTRIM(LEFT(@Text, PATINDEX('%[0-9]%', @Text) - 1))) 

あなたは以下のようにテーブルから文字列を処理するために

SELECT 
    LTRIM(RTRIM(LEFT(ColumnName, PATINDEX('%[0-9]%', ColumnName) - 1))) 
FROM 
    [Table1] 
+0

この@arunaありがとう。私は実際に私が望むものを得ます! –

+0

@JackyMontevirgen素晴らしい、あなたは上記のコードを使用しているか、別のものを使用しましたか? – Aruna

+0

私は上記のコードを使用して、それは私のために動作します。今私はPATINDEXの使用を理解しています。ありがとうございました@Aruna :) –

1

最善の方法をこれを行うことができますし、操作は、アプリケーション側ではなく、データベース側にあります。あなたがこれを必要な場合でも、コードではなく、データベース側でこの操作を行う、あなたは、あなたが望むもの

SELECT PATINDEX('%[^0-9]%',stringValueCol) 'Position of NonNumeric String Position', 
SUBSTRING(stringValueCol,PATINDEX('%[^0-9]%',stringVlaueCol),PATINDEX('%[^A-Z]%',stringValueCol)-1) 'NonNumeric String' 
FROM 
    myTable 

を取得するためにSUBSTRINGとともにPATINDEXを使用することができますしかし、私はまだお勧めします。

+0

ご意見ありがとうコードの@コーダー。しかし、私はアプリケーションを一切使っていません。私は自分のデータベースから生データを抽出し、それを私のレポートに入れたいだけです。しかしあなたの提案も役立ちます。再度、感謝します! –

関連する問題