SQL Serverでよく使用される関数は、CAST()です。 、
TRY_CAST()と入力します 。
TRY_CAST() キャストが失敗しても、関数はエラーを返しません。代わりに、NULLを返します 。
ただし、エラーが返される場合があります。
構文
構文は次のようになります:
TRY_CAST ( expression AS data_type [ ( length ) ] )
expressionの場所 変換する式、data_type は新しいデータ型であり、length 新しいデータ型のオプションの長さです。
例1-キャストの成功
文字列をdecimalとしてキャストする例を次に示します。 :
SELECT TRY_CAST('007' AS DECIMAL(5,2)); 結果:
7.00
この場合、キャストは成功しました。
例2–キャストが失敗してNULLを返す
キャストが失敗し、NULLの例を次に示します。 返される:
SELECT TRY_CAST('Double Oh Seven!' AS DECIMAL(5,2)); 結果:
NULL
キャストが失敗したため、NULL 返されました。
比較として、CAST()を使用すると次のようになります。 TRY_CAST()の代わりに :
SELECT CAST('Double Oh Seven!' AS DECIMAL(5,2)); 結果:
Msg 8114, Level 16, State 5, Line 1 Error converting data type varchar to numeric.
例3–キャストが失敗してエラーを返す
TRY_CAST()が発生する場合があります エラーを返します。
キャストが明示的に許可されていない場合は、エラーが返されます:
SELECT TRY_CAST(10 AS xml); 結果:
Msg 529, Level 16, State 2, Line 1 Explicit conversion from data type int to xml is not allowed.
詳細情報
CAST()の方法をご覧ください その他の変換例についてはSQLServerで動作し、CAST() vs TRY_CAST() CAST()を比較するためのSQLServer およびTRY_CAST() 。
CAST()についてはMicrosoftのドキュメントを参照してください およびCONVERT() 詳細については、(そのほとんどはTRY_CAST()にも適用されます。 。