0

数値を抽出する必要がある数値を持つデータがあり、その数値の後には通常「sh-」が続き、「sh-」含まれていない場合はnullを返す必要があります。私が持っているデータのサンプルは次のようなものです:

sh-849116 からの Tnsf Act-13383.38 Unam-13383.38 04/12/12

sh-849116 からの Tnsf Act() Unam() 04/12/12

開始日が四半期の初めではないという事実に対応するために、システムが追加されました。sh-849116 からの Tnsf Act() Unam() 04/12/12

洗車材料コードへの SAP での再分類された支払い。FORECOURT 支払いはすでに支払われているため、削除できませんでした。

アモチェンジ。ファイルを参照してください。CAS 5.21.10* sh-849116 からの Tnsf Act-12451.20 Unam-12451.20 04/12/12*

出力は次のようになります。

84916

84916

84916

ヌル

84916

よろしくお願いします

私はそれを編集しました

4

2 に答える 2

1

これにより、次の番号が取得されますsh-

DECLARE @string VARCHAR(255) = 'Tnsf from sh-849116 Act-13383.38 Unam-13383.38 04/12/12'
SELECT SUBSTRING(@string,CHARINDEX('sh-',@string)+3,CHARINDEX(' ',@string,CHARINDEX('sh-',@string))-CHARINDEX('sh-',@string)-3)

あなたのクエリでは、すべての行にないCASE場合はステートメントを追加します。sh-

SELECT CASE WHEN CHARINDEX('sh-',StringField) > 0 
            THEN SUBSTRING(StringField,CHARINDEX('sh-',StringField)+3,CHARINDEX(' ',StringField,CHARINDEX('sh-',StringField))-CHARINDEX('sh-',StringField)-3)
       END
FROM YourTable
于 2013-08-09T18:30:50.793 に答える