データベース関連

SQL関連メモ(Oracle)

T-SQL関連メモ

話題

Tips

  • SELECTしたレコードをUPDATE/DELETEする場合、最初に SELECTするときにROWIDを取得しておいてキーにすると速く処理できる(ただしRowIDがつ使えるOracleの場合)
  • DECODEや CASE WHEN 式でSQLを一つにまとめられるならしたほうがよい
  • HAVING句による絞り込みをする前にwhere句による絞り込みをしたほうがいい
    • 良い例
      SELECT job, AVG(uriage) from emp 
       where job IN ('A','B', ...) group by job;
    • 悪い例
      SELECT job, AVG(uriage) from emp
       group by job having job IN ('A','B', ...) ;
    • 先に絞り込んでから集計する方がパフォーマンスが良い
  • レコードを毎回ランダム順に取得
    select newid() nid,*   from <hoge> order by nid
  • 抽出結果からテーブル作成
    select * into <hoge> from <hage>
  • 抽出結果を既存テーブルにインサート
    insert into <hoge> select * from <hage>

    hoge>と<hage>の項目が合っていることが前提。values()や項目指定などを使って合わせる

文字列の中に数字以外の文字があるかどうかで絞り込みたい


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-06-30 (日) 13:46:17 (847d)