15

フィールドがChar(15)あり、このフィールドには以下のデータがあります。

94342KMR
947JCP
7048MYC

これを分解する必要があります。最後の RIGHT 3 文字を取得する必要があり、LEFT にあるものは何でも取得する必要があります。私の問題は、左側のコードが常に同じ長さであるとは限らないことです。

SQLでこれを達成するにはどうすればよいですか?

ありがとうございました

4

4 に答える 4

1
select right(rtrim('94342KMR'),3)

これにより、最後の 3 つの右側の文字列が取得されます。

select substring(rtrim('94342KMR'),1,len('94342KMR')-3)

これにより、残りの文字が取得されます。

于 2015-02-21T06:36:33.027 に答える
1

ここで使用する代替SUBSTRING

SELECT
            SUBSTRING([Field], LEN([Field]) - 2, 3) [Right3],
            SUBSTRING([Field], 0, LEN([Field]) - 2) [TheRest]
    FROM 
            [Fields]

フィドル付き

于 2013-07-01T17:07:48.863 に答える