sooni

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,current...
PostgreSQL

PostgreSQL 乱数作成

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

PostgreSQL with句

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

PostgreSQL 文字列操作

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

PostgreSQL valueリスト

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

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

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

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

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

PostgreSQL タイムゾーン

タイムゾーンを確認する-- SQLで確認するselect current_setting('timezone') as database_timezone;-- showコマンドで確認するshow timezone;myposdb=# --...