SELECT 句

カラム指定

プログラムのSQLの場合にはカラムは明示的に指定する

エイリアス

カラム

# どのテーブルのどのカラムか分かるようにする
テーブルのエイリアス.カラム名 テーブル名_カラム名
※APIから返す場合は内部的な詳細を隠すため、カラム名だけでよい
※ASは省略できないDBもあるが、||連結等以外は省略する

# 結合後に重複するカラムはFROM句,INNER JOINするのが速い順で指定する
主キーが他のテーブルから多く参照されていて、結合した場合はFROM句のテーブル名のエイリアスを使う

テーブル

# 基本はテーブル名の頭文字
テーブル名 テーブル名のエイリアス

# すでに他のテーブルのエイリアスで頭文字が使われていた場合
何のデータかが分かるようなエイリアス名にする

DISTINCT

COUNT

COUNT(*)
COUNT(*) OVER(PARTITION BY カラム名) カラム名_count
COUNT(カラム名A)

※NULLや0が含まれるときの挙動を確認しておく
※NULLを含める場合はCOUNT(*)
※NULLを含めない場合はCOUNT(カラム名A)

CONCAT

CONCAT(FIRST_NAME, ' ', LAST_NAME) FULL_NAME
※Oracle, Postgre: FIRST_NAME || ' ' || LAST_NAME AS FULL_NAME

SELECT内のサブクエリでの一時テーブル

SELECTの評価がWHEREより先なので、一時テーブルのカラム名はWHEREで使える

最大X行

LIMIT X;
※OracleはWHERE ROWNUM <= X;

COALESCE

COALESCE(カラム名, 0)
※COALESCEを使うよりはテーブル作成時のデフォルト値を設定する