プログラ生活

プログラム初学者のためのポイントを書いていこうと思います。たまに脇道それた記事もありますが、息抜きだとおもって気長にお付き合いください。

【SQL Server(連載)】スカラ関数の活用 -27-

www.pon-x.jp

前回の続き

前回はスカラ―関数をつくりました。
今回はこれの応用です。

スカラ―関数の定義変更

まず、定義したスカラ―関数をどこで確認すればよいかということですが、
オブジェクトエクスプローラーから、
[プログラミング]→[関数]→[スカラー値関数]を展開すると確認できます。
f:id:hanabusa-snow:20201211220705p:plain

では、前回作ったJP_YEARを開いて確認してみます。
[右クリック]→[変更]を押してください。
f:id:hanabusa-snow:20201211220827p:plain

こんな感じで展開されます。
f:id:hanabusa-snow:20201211220947p:plain
ビューでやった時と同じで、すでにALTER定義がされているので、それ以下を変更して実行するだけで定義変更が可能です。

使い方の応用

スカラ―変数の使い方の応用です。
例えば、SELECT句で使うにはこんなことが考えられます。

SELECT 
    ModifiedDate,
    dbo.JP_YEAR(ModifiedDate) AS NENDO 
FROM Person.Person

こんな感じに、カラムの値に対してすべてを演算してくれます。
f:id:hanabusa-snow:20201211221523p:plain

こんなこともできます。

SELECT 
    ModifiedDate
FROM Person.Person
WHERE dbo.JP_YEAR(ModifiedDate) > 2010

カラムごとの演算結果をWHERE句で比較してあげることができるのです。
f:id:hanabusa-snow:20201211221704p:plain

さらにこんなことも

SELECT 
    ModifiedDate,
    dbo.JP_YEAR(ModifiedDate)
FROM Person.Person
ORDER BY dbo.JP_YEAR(ModifiedDate)

カラムごとの演算結果でソートしてあげることも可能です。
f:id:hanabusa-snow:20201211221830p:plain

もちろんSELECT文以外でもよくて例えば、 UPDATE文やINSERT文に使うことも考えられます。







こんなかんじにSQLを単純にかくために関数って便利ですよね。
以上、今回はここまで。