-2

列の最後の文字を取得して数値に変換するにはどうすればよいですか?例:

000000000017A
000000000038B
000000000431C

文字が次の値に等しい場合は、最後の文字を次のように変更する必要があります:
A = 1
B = 2
C = 3

結果:
171
382
4313

4

3 に答える 3

2

のASCII値Aは65です。したがって、ASCII値から64を引くCことでに変換できます。3

select  cast(
            left(col1, len(col1) - 1) +
            cast(ascii(upper(right(col1, 1))) - 64 as char(1))
            as int)
from    Table1

SQLFiddleでの実例。

于 2013-03-12T19:04:26.443 に答える
0

SQLのREPLACE関数を使う必要があると思います

http://msdn.microsoft.com/en-en/library/ms186862.aspx

于 2013-03-12T19:01:11.697 に答える
0

次のSQLステートメントでそれを理解しました。1つの列で複数の基準を変更するために、次を使用しました。

SELECT REPLACE(REPLACE(REPLACE(Prev_Month_Vol,'A','1'), 'B', '2'), 'C', '3')
FROM table1

これが、置換ステートメントを実行しようとしている人に役立つことを願っています。

于 2013-03-12T20:10:27.730 に答える