SQLServerのSQLで、数値文字列を数値型に変換するサンプルです。
構文
数値文字列を数値型に変換するにはCONVERT関数を使用します。
- 数値文字列を数値型に変換する構文
- CONVERT(<変換後の数値型>, <数値文字列>)
数値文字列⇒int型
正常の例
1 2 |
SELECT CONVERT(int, '123') 123 |
1 2 |
SELECT CONVERT(int, '-123') -123 |
エラーの例
1 2 3 |
SELECT CONVERT(int, 'abc') メッセージ 245、レベル 16、状態 1、行 1 varchar の値 'abc' をデータ型 int に変換できませんでした。 |
アルファベットはint型に変換できません。
1 2 3 |
SELECT CONVERT(int, '123.45') メッセージ 245、レベル 16、状態 1、行 1 varchar の値 '123.45' をデータ型 int に変換できませんでした。 |
intは小数値に対応していません。floatならOKです。
1 2 3 |
SELECT CONVERT(int, '12345678901') メッセージ 248、レベル 16、状態 1、行 1 varchar の値 '12345678901' の変換が int 型の列でオーバーフローしました。 |
intの最大桁数をオーバーしています。
数値文字列⇒float
正常の例
1 2 |
SELECT CONVERT(float, '123') 123 |
1 2 |
SELECT CONVERT(float, '123.45') 123.45 |
1 2 |
SELECT CONVERT(float, '-123.45') -123.45 |
エラーの例
1 2 3 |
SELECT CONVERT(float, 'abc') メッセージ 8114、レベル 16、状態 5、行 1 データ型 varchar を float に変換中にエラーが発生しました。 |
アルファベットはfloat型に変換できません。
備考
- CONVERT(int, xx)やCONVERT(float, xx)は、オラクルのTO_NUMBERに該当します。