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()
にも適用されます。 。