プログラ生活

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

【SQL Server(連載)】CASE式の応用 -18-

www.pon-x.jp

前回の続き

前回、CASE式をやりましたが、今回は応用的な事例を紹介します。

並び替えに使う。

ORDER BY で並び替えができるのですが、CASE式をもっておもしろい使い方ができます。

例えば、以下のようにPerson.PersonテーブルをPersonTypeでソートするにはいかのようになります。

SELECT *
FROM Person.Person
ORDER BY PersonType

このとき、PersonTypeでソートするけれども、データが「IN」のレコードは最優先で上位としたいいったとき、以下のように書けます。

SELECT *
FROM Person.Person
ORDER BY 
    CASE WHEN PersonType='IN' THEN 0 ELSE 1 END,
    PersonType

こんなかんじで実装できます。

UPDATEでつかう。

変更するデータにCASE式を用いることができます。

UPDATE Person.Person_Copy
SET Suffix = CASE WHEN PersonType='IN' THEN 0 ELSE 1 END

画像だと一部だけですが、確認してみます。

SELECT * FROM Person.Person_Copy

f:id:hanabusa-snow:20201203140925p:plain







こんかかんじで、スカラ(単一)な値であればまだまだこれ以外も多様な使い道があります。
ぜひ使い方を覚えておきましょう。