sooni

PostgreSQL

PostgreSQL generate_series() シーケンスと行データを生成

generate_series() 指定された範囲で整数のシーケンスを生成し結果セットとして返却します。地味だけで便利な関数です。OracleやMySQLにはこれに相当する関数は無いとおもいます。ちょっとしたテストデータとして副問い合わせで...
oracle

Oracle CONNECT BY PRIOR句とLEVEL疑似列を使って階層表示

以下のようなTREE構造をテーブルで保持している時「階層(レベル)」を知りたくなる状況があります。これを「自力」で求めるのは大変ですが、connect by prior句とLEVEL疑似列を使う事で簡単に導出できます。 社員名(社員番号) ...
oracle

Oracle rownumとは

ROENUM疑似列 rownum疑似列といいます。rowidと勘違いしそうですが、こちらはselectの結果セットに対し、1から順番に採番してくれる「疑似列」です。もっとも利用されている例の一つに、SELECTの結果件数を制限する事に使った...
PostgreSQL

PostgreSQL 日付の計算/時間の計算

100分後、100時間後 SELECT current_date,current_timestamp,CURRENT_TIMESTAMP + INTERVAL '100 minutes'; SELECT current_date,curre...
PostgreSQL

PostgreSQL 乱数作成

お手軽に英数字を使ったランダム文字列作成 MD5ハッシュは16進表現となるので、出力されるのは0-9、a-fの範囲内でのランダム文字です select substr(md5(random()::text || now()::text),1,...
PostgreSQL

PostgreSQL with句

with句自体の書き方はOracleと同じですが、PostgreSQL独自のVALUEリストと組み合わせて利用するとさらに便利に感じます。 VALUEリストと組み合わせた利用例 with wktbl as ( SELECT * FROM (...
PostgreSQL

PostgreSQL 文字列操作

quote_ident()  地味ですが有り難い関数です。たまに環境によっては、テーブル名やカラム名をダブルクォーテーションで囲まないとならない場合があります。例えば以下のようにテーブル名に日本語を使うようなケースです。このような時、inf...
PostgreSQL

PostgreSQL valueリスト

PostgreSQLのVALUEリストがありがたいです。 VALUEリストの使用例 select * from ( values (1, '大嶋', 'oshima'), (2, '中嶋', 'nakajima'), (3, '小嶋', '...
pg_catalog

pg_stat_user_functions ファンクションの利用状況を調べる

ユーザ作成したファンクションの実行統計情報(呼び出し回数と所要時間)を確認できます。現在のトランザクション中に呼び出されたものだけを確認するにはpg_stat_xact_user_functionsを使用するらしいのですが、こちらはいま一つ...
pg_catalog

PostgreSQL 実行SQLの統計情報を取得する

pg_stat_statements pg_stat_statements拡張モジュールをインストールする事で、サーバで実行されたすべてのSQL文のプラン生成時と実行時の統計情報を取得できるようになります。PostgreSQLにおいてSQL...