SQL Server2012で追加される新しい組み込み関数14個


前回の記事では、SQL Server 2012で追加される新構文を紹介しました。

本記事では、組み込み関数でとして追加される14個の関数を説明します。
追加された関数は大きく分けると、分岐処理・日付処理・変換処理・文字列処理に分類されます。

分岐処理

  • choose
  • iif

日付処理
  • eomonth
  • datefromparts
  • datetime2fromparts
  • datetimefromparts
  • datetimeoffsetfromparts
  • smalldatetimefromparts
  • timefromparts

変換処理
  • parse
  • try_convert
  • try_parse

文字列処理
  • concat
  • format

それでは、各関数の内容を確認していきましょう。


分岐処理


choose:値の条件分け

複数の値からオフセットを指定して、値を決定します。
excelの同名関数とおなじ処理です。

SQL

SELECT choose( 2, 'AAA', 'AA+', 'AA', 'A-', 'A' )



実行結果

AA+





iif:分岐

語源:Immediate IF

条件分岐をcase句を使用せず、シンプルに表記できます。
excelの同名関数とおなじ処理です。

SQL

DECLARE @param VARCHAR(4) = '0001';
SELECT IIF( @param = '0001', 'true', 'false' );



実行結果

true





日付処理


eomonth:月末の取得

語源:End Of MONTH

eomonth()で月末を簡単に取得可能です。

SQL

SELECT eomonth( '2012/01/10' )



実行結果

2012-01-31 00:00:00.0000000





datefromparts:文字列から日付型の取得

語源:DATE FROM PARTS

年・月・日それぞれを意味する文字列から日付型データを取得できます。
他に同系統の処理として、以下の関数が追加されています。
datetime2fromparts, datetimefromparts, datetimeoffsetfromparts, smalldatetimefromparts, timefromparts

SQL

SELECT datefromparts( '2012' '01', '10' )



実行結果

2012-01-10





変換処理


try_convert:型のキャストを試みる

TRY_CONVERTは、型のキャストが出来るかチェックし、キャストできない場合はNULLを返します。
他に同様の関数として、PARSE, TRY_PARSEが追加されています。

SQL

SELECT CASE WHEN try_convert( FLOAT,'10.0A') IS NULL
             THEN 'NG'
             ELSE 'OK'
        END



実行結果

NG





文字列処理


concat:文字列の結合

語源:CONCATenate

今までのSQLServerでは”+”で文字列連結を行っていましたが、concat()で結合を行うことが出来ます。
Oracleのconcat()関数と異なり、sqlserverでは、引数を3つ以上指定可能です。

SQL

SELECT concat( 'hello', ' ', 'world' )



実行結果

hello world





こちらの記事もどうぞ:
SQLServer2012のSQLで追加される便利な新機能4つ

関連記事

One Response to “SQL Server2012で追加される新しい組み込み関数14個”

  1. 匿名 より:

    これらが使えなかった場合どうやって代用するんですか?

匿名 へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。