SQL PARSE 関数は、文字列データを要求されたデータ型に変換し、その結果を式として返すために使用される SQL 変換関数です。
SQL PARSE 関数の構文
SQL Server PARSE 関数の構文は次のとおりです
PARSE (String_Value AS Data_Type )-- For exampleSELECT PARSE (String_Column_Value AS Data_Type USING 'en-US') AS FROM
- Data_Type: String_Valueを変換したいデータタイプ
- Culture: これはオプションのパラメーターです。 デフォルトでは、現在のセッション言語が使用されます。
SQL PARSE Function Example 1
SQL ServerのParse Functionは、主に文字列を日時や数値に変換するために使用されます。 次のParse関数のクエリは、整数や文字列を10進数に、文字列をDateTimeに解析します。
Parse関数が文字列を目的のデータ型に変換できない場合。 あるいは変換できない文字列を渡した場合、あるいはNULL値を渡した場合、このParse関数はエラーを返します。
-- SQL PARSE FUNCTION Example DECLARE @str AS VARCHAR(50)SET @str = '11122'SELECT PARSE(@str AS INT) AS Result; -- Direct InputsSELECT PARSE('1234' AS DECIMAL(10, 2)) AS Result; SELECT PARSE('06/03/2017' AS DATETIME) AS Result; SELECT PARSE('06/03/2017' AS DATETIME2) AS Result;
文字列の値を整数に変換し、SQL ServerのALIAS列を使用して「Result」という名前にしています。
SELECT TRY_PARSE(@str AS INT) AS Result;
次の行では、SQL PARSE関数を文字列値に直接使用し、精度2の10進数値に変換しています
SELECT PARSE('1234' AS DECIMAL(10, 2)) AS Result;
次に、文字列をDateTimeとdatetime2データタイプに変換しています。
SELECT PARSE('06/03/2017' AS DATETIME) AS Result; SELECT PARSE('06/03/2017' AS DATETIME2) AS Result;
PARSE関数の例2
このParse関数の例では、NULL値や変換できない文字列を扱うことになります。
-- SQL PARSE FUNCTION Example DECLARE @strval AS VARCHAR(50)SET @strval = NULLSELECT PARSE(@strval AS INT) AS Result;
直接の入力としてNULL値を渡した場合にどうなるかを見てみましょう。
SELECT PARSE(NULL AS INT) AS Result;
「Tutorial Gateway」の文字列を日付時間に変換しようとしました。
SELECT PARSE('Tutorial Gateway' AS DATETIME USING 'en-US') AS Result;
となっています。