6章 高度なSELECT文

UPDATE テーブル名 SET C列 =
CASE
WHEN A列 = 'あ' THEN 'ああ'
WHEN B列 = 'い' THEN 'いい'
ELSE 'うう'
END
;
___
C列に、A列で値が「あ」なら「ああ」と、B列で値が「い」なら「いい」と、それ以外の値は「うう」と埋める。

エクセル関数のIFを思い出しました。

SELECT 列名 FROM テーブル名 ORDER BY A列, B列 DESC, C列;
___
リストが昇順(ASCENDING(ASC))になります。複数列はA列、B列、C列の順序で適用。
B列は降順(DESCENDING(DESC))になります。ASCはデフォルトなので省略可。
昇順の場合、大きくはこの順です。
空白、NULL→数字→英語→日本語
特殊文字も順序は決まっていますが、文字によって数字や英字の前後さまざまです。
大文字は小文字の前です。

これまで昇順・降順の順序イメージが確定してませんでした。
階段を上るイメージが載っていたので、合点がいきました。

SELECT 列名, SUM(列名) FROM テーブル名
GROUP BY 列名;
___
SUM(列名)で、列の数値を合計します。GROUP BYは列内の重複をまとめます。
SUMの他に、AVG(列名)で平均を、MAX(列名)で最大値を、MIN(列名)で最小値を求められます。
COUNT(列名)はNULLを除く行数を数えます。
一意の値を一覧したいときは、DISTINCTというキーワードがあります。
表示する行数を制限できる、LIMITというキーワードもあります。

一章でこんなにかかった…