2009-05-30から1日間の記事一覧

第106回 Oracleのお勉強 GROUP BYを使って取得するものは一度に取得できないか考える

次の表で考えてみよう。 SQL> select * from ( 2 select sysdate 日付, 1 管理番号 from dual union 3 select sysdate 日付, 2 管理番号 from dual union 4 select sysdate 日付, 3 管理番号 from dual union 5 select sysdate+1 日付, 1 管理番号 from dual…

第105回 Oracleのお勉強 CASE式とDECODEに慣れる

GROUP BYするときに、countだけでは、うまく集計できないことが多々ある。 それはもう結構ある。 そういうときは、sumとCASEもしくは、sumとDECODEである。 CASEとDECODEの違いは、 CASE と DECODE 関数の違い - オラクル・Oracleをマスターするための基本と…

第104回 Oracleのお勉強 GROUP BY の罠

日付でGROUP BYするときは注意が必要 日付でGROUP BYするときは注意が必要である、 なぜなら時分秒まで持っている場合、時分秒まで加味してGROUP BYされるかれである。 例 テーブル作成, テーブルにデータINSERT create table t_group_date( d_create DATE, …

第103回 Oracleのお勉強 擬似テーブル

CREATE権限がないときに擬似テーブルをdualとunionで作る SQL> select 2 * 3 from 4 ( 5 select sysdate from dual union 6 select sysdate+1 from dual union 7 select sysdate+2 from dual 8 ); SYSDATE -------- 09-05-30 09-05-31 09-06-01 このように、…

第107回 Oracleのお勉強 テーブルを中身ごとコピーする

いま SQL> desc t_group_date 名前 NULL? 型 ----------------------------------------- -------- -------------- D_CREATE DATE C_STATUS CHAR(2)こういうテーブルの作りで、 SQL> select * from t_group_date; D_CREATE C_STATUS -------- ---------- 09-…