-3

申し訳ありませんが、これらの質問は家に帰る電車の中で携帯電話から書いたため、既存のコードが手元にありませんでした。私はそれのいくつかを理解しましたが、まだ助けが必要です

1) 質問 1: 6 桁ごとに分割します。基本的には、5 桁ごとに列を分割して、123456 が 12345 の列と 6 の列を作成するように、以下のコードを使用してみましたが、結果はありません。スペースや記号はなく、数字だけです。

substring(COA.UserCode2,5,charindex('',COA.UserCode2)) as Accountsubstring(COA.UserCode2,6,charindex('',COA.UserCode2)) as Project

2) 質問 2: * ごとに分割すると、以下の最初のもの (資金) を機能させることができますが、1234*34*500 のような文字列がある場合、コスト センターとソースは基本的に機能しません。資金は 1234 (これは既に取得しています)、コスト センターは 34、ソースは 500 です。

substring(COA.UserCode3, 1,charindex('*',COA.UserCode3)) as Fund,
substring(COA.UserCode3, 3,charindex('*',COA.UserCode3)+1) as CostCenter,
substring(COA.UserCode3, 1,charindex('*',COA.UserCode3)) as Source

4

1 に答える 1

0

質問 1 については、次のように置き換えます。

charindex('',COA.UserCode2) 

len(COA.UserCode2)

(または長さをハードコードするだけです)。

質問 2 の場合、2 番目と 3 番目の列の Substring Start パラメーターは、前の列で既に切り取った文字列の長さを考慮する必要があります。これをネストされた select ステートメントでコーディングして、コードの扱いにくさを軽減します。

于 2013-01-07T05:54:59.887 に答える