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 PARSE Function 1

文字列の値を整数に変換し、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;
SQL PARSE Function 2

直接の入力としてNULL値を渡した場合にどうなるかを見てみましょう。

SELECT PARSE(NULL AS INT) AS Result;
SQL PARSE Function 3

「Tutorial Gateway」の文字列を日付時間に変換しようとしました。

SELECT PARSE('Tutorial Gateway' AS DATETIME USING 'en-US') AS Result;
SQL PARSE Function 4

となっています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です