SQLでin指定で複数のデータを指定する 手抜きSQLの極致なのですが、 inでデータをちょっと絞り込みたい、というときに、 絞り込む情報が複数あったわ、といったことが分かった時に使いました。 ちゃんとやるなら、joinにしてちゃんとonでぶつけるべきだとは思います ...
もっと読む
カテゴリ: SQL
BigQueryで使うSQLが、今風になった。
BigQueryで使うSQLが、今風になった。 スタンダードSQLに対応した、ってことで、 ・with句 ・サブクエリ ・使いやすいフォーマット とかが使えるようになって、より便利になったBigQueryの世界。 SQLの頭に、「#standardSQL」を付ける作法となっています。 #sta ...
もっと読む
group by に入力した値で、order by したい
group by に入力した値で、order by したい 例えば、IDと名前みたいなデータがあるときに、 名前でユニークに寄せた最少のIDでソートしたい、というとき。 あれ、これエラーになるかな、と思っていたら、なりませんでした。 普通にorder by に minとかつかえた。 ...
もっと読む
select で using を使った時の挙動
select で using を使った時の挙動 今まで何も考えなく、onで接続していたのですが、 usingを使うSQLを見て、まあこっちの方が楽そうかも? と思ってなんとなく調べてみました。 ものすっごい平たく書くと、 using=接続する列を指定する on=条件もいろいろ書け ...
もっと読む
oracleでupdateで文字列の部分置換、部分削除
oracleでupdateで文字列の部分置換、部分削除 まあ、oracleに限ったわけでもないのですが、 あれ? これで大丈夫だっけ? ってなったので改めて調べました。大丈夫でした。 --置換 update table set dat = replace(dat,'aaa','bb') --削除 update table set da ...
もっと読む
比較SQLで、ちょっと感心した話
比較SQLで、ちょっと感心した話 データを比較するときに、同じデータが存在するかどうか、 みたいな比較SQLを書いたりしますが、他のひとSQLを見てちょっと感心した話です。 select * from table t1 join table t2 on ( trim(t1.data) = trim(t2.data) ...
もっと読む
SQLは、union を辞めて、union all にしていきましょう
SQLは、union を辞めて、union all にしていきましょう。 タイトルの通りで、oracleに限らず、unionで繋げることがあるのですが、 union all にした方が良いです。 理由はソートとユニーク化作業が必要ないため。 明示的にユニーク化する必要がある場合のみunionにす ...
もっと読む
oracleで前の行と比較して差分時間を算出
oracle限定用ですが、SQLで前の行との比較して、差分時間を出す。 select act_date as now_date , min(act_date) over (order by act_date asc rows between 1 preceding and 1 preceding) as ago_1 , to_char((act_date - min(act_date) over (order by ...
もっと読む
oracleで年度をとる
SQLで年度を出そうと思ったときにどうやるんだ ろう、って思ったら、凄いシンプルでした。 select to_char(add_months(sysdate,-3),'YYYY') as nendo from dual 確かに3カ月引けば、そのまま年度になる。 スッキリわかる SQL 入門 ドリル215問付き! (スッキリシリーズ) ...
もっと読む
oracleでソート後で出力行数を絞る
今までは副問い合わせしていましたが、12cから こんなことが出来るらしい。 select * from table order by data asc fetch first 10 rows only これで、dataの順番に並べた後、上位10件の み表示できる ...
もっと読む