SQL ServerのTRY_CAST関数とは?構文と使い方を実例つきで解説
この記事では、SQL ServerにおけるTRY_CAST関数(データ型変換関数)の使い方を、具体的な構文とサンプルコードとともに詳しく解説します。TRY_CASTを理解することで、エラーを発生させずに安全な型変換を行えるようになります。
TRY_CAST関数とは
TRY_CAST関数は、SQL Serverである式を別のデータ型へと変換するための関数です。CAST関数とよく似ていますが、最大の特徴は変換に失敗した場合にNULLを返すという点にあります。変換が成功すれば対応する変換後の値が返され、失敗すればNULLとなるため、無効なデータが混在している可能性のある列を扱う際に非常に便利です。
構文
SQL ServerでTRY_CAST関数を使用するには、以下の構文を使います。
TRY_CAST(expression AS data_type [(length)])
パラメータ:
- expression: 変換対象となる値です。テーブルのカラム名や、新しいデータ型へ変換したい計算式を指定することもできます。
- data_type: 式の変換先となる新しいデータ型名です。次のいずれかを指定できます:bigint、int、smallint、tinyint、bit、decimal、numeric、money、smallmoney、float、real、datetime、smalldatetime、char、varchar、text、nchar、nvarchar、ntext、binary、varbinary または image。
- length(省略可能): char、varchar、nchar、nvarchar、binary、varbinary 型の場合における、結果のデータ長を指定します。
注意点
- float型やnumeric型のデータをint型(整数)に変換する場合、TRY_CAST関数は小数点以下を切り捨てます。
- 関連するCAST、CONVERT、TRY_CONVERT関数についても併せて確認しておくと理解が深まります。
- TRY_CASTはSQL Server 2012以降のバージョン(SQL Server 2012、2014、2016、2017)で使用可能です。
CASTとTRY_CASTの違い
通常のCAST関数は変換に失敗するとエラーとなり、クエリ全体の実行が中断されます。一方、TRY_CASTは失敗時に単にNULLを返すだけなので、処理が止まることはありません。そのため、データ品質が不明なテーブルに対して一括で型変換を行うようなケースでは、TRY_CASTの方がはるかに安全に利用できます。
使用例
それでは、TRY_CAST関数の具体的な使用例を見ていきましょう。
SELECT TRY_CAST(14.85 AS int);
-- 結果:14
-- (小数部分が切り捨てられたint値が返される)
SELECT TRY_CAST(14.85 AS float);
-- 結果:14.85
-- (float値としてそのまま返され、切り捨ては行われない)
SELECT TRY_CAST('14 Main St.' AS float);
-- 結果:NULL
-- (文字列をfloatに変換できないためNULLが返される)
SELECT TRY_CAST(15.6 AS varchar);
-- 結果:'15.6'
-- (varcharとして返される)
SELECT TRY_CAST(15.6 AS varchar(2));
-- 結果:NULL
-- (値が2文字のvarcharに収まらないため変換に失敗し、NULLが返される)
SELECT TRY_CAST('2018-09-13' AS datetime);
-- 結果:'2018-09-13 00:00:00.000'
-- (datetimeとして返される)
このように、TRY_CAST関数を使えば変換不可能な値が含まれていてもNULLが返されるだけで済むため、データクレンジングや移行処理などで活躍します。ぜひ実際の業務クエリでも活用してみてください。
-
【SQL Server】AVG関数の使い方を徹底解説!基本構文から実用例まで
本記事では、SQL Serverにおける数値処理関数「AVG」の使い方を、基本構文と具体的な使用例を交えて詳しく解説します。AVG関数の動作を正しく理解し、実務のデータ集計に活かせるようにしましょう。 AVG関数とは AVG関数は、SQL Serverにおいて式の平均値、または選択された行のうち指定した列の平均値を返す集計関数です。なお、NULLの値は自動的に除外され、平均の計算対象には含まれません。 基本構文 平均値を計算するには、SQL ServerでAVG関数を次のように記述します。 SELECT AVG(列名)FROM テーブル名[WHERE 条件]; パラメータの説明: 列名:平均
-
SQL ServerのCOUNT関数とは?基本構文からDISTINCT・GROUP BYの活用まで徹底解説
この記事では、SQL ServerのCOUNT関数の使い方について、具体的な構文と実行例を挙げながら詳しく解説します。COUNT関数はデータベース操作で最も頻繁に使われる集計関数の一つです。基本をしっかり押さえておくことで、日々のデータ分析やシステム開発に大きく役立ちます。 COUNT関数とは COUNT関数は、SQL Serverにおいてテーブル内のレコード(行)の件数を数えるために使用される集計関数です。重要なポイントとして、NULLが含まれる値はカウントの対象から除外されるという特性があります。 基本構文 SQL ServerでCOUNT関数を使用する際は、以下の構文を使用します。