タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

SQLに関するtakryou79のブックマーク (3)

  • SQLite3でUpsertを実行する

    似たような処理にreplaceがあるが、 replaceはレコード(行)を丸ごと入れ替える(delete/insert)のに対し、 upsertはカラムを指定してレコードを更新する。 SQLite3 でレコードがあれば置換、なければ新規挿入する (replace) 公式 によると PostgreSQL の構文を利用しているとのこと。 Microsoft SQLServer や Oracle の「merge(マージ)」構文に近い使い方だが mergeは重複の判定にUniqueカラム以外のものを指定できたりする。 実行例 「upsert」というコマンドがあるわけではなく、 on conflict文を使い キーが重複した場合の処理を指定することができる。 on conflict文は sqlite のバージョン3.24.0 から利用可能。 環境 Windows 10 sqlite3 (3.24.0

  • SQL CASE式の使い方 複数条件によって返す値を分岐する

    CASE expr WHEN comp THEN return [WHEN comp THEN return ...] [ELSE return] END expr 評価する式 comp 比較する値 return 戻す値 CASE式を使ったSELECT文の例を次に示す。 SELECT CASE emp.gender WHEN 'M' THEN '男' WHEN 'W' THEN '女' ELSE NULL END FROM emp SQLのCASE式では、複数の条件によって分岐することもできる。 CASE WHEN cond THEN return [WHEN cond THEN return ...] [ELSE return] END cond 条件式 return 戻す値 複数条件によって分岐するCASE式の例を次に示す。 SELECT CASE WHEN prefectures =

  • SQL で縦横変換まとめ(pivot と unpivot) - Qiita

    下図のように、「縦持ち」のテーブルを「横持ち」に置き換えることをピボット(pivot)、逆に「横持ち」のテーブルを「縦持ち」に置き換えることをアンピボット(unpivot)と呼びます。これらの変換を行なう方法をまとめました。 標準SQL Presto Hive Pandas (Python) 標準SQL SQL-like なクエリ言語ならどこでも使える書き方です。 Pivot SELECT uid, max(CASE WHEN key = 'c1' THEN value END) AS c1, max(CASE WHEN key = 'c2' THEN value END) AS c2, max(CASE WHEN key = 'c3' THEN value END) AS c3 FROM vtable GROUP BY uid ;

    SQL で縦横変換まとめ(pivot と unpivot) - Qiita
  • 1