[pgsql-jp: 33352] Re: SQL文の書き方

Tietew tietew @ tietew.net
2004年 6月 23日 (水) 16:28:07 JST


On 23 Jun 2004 15:23:09 +0900
In article <20040623062309.49919.qmail @ msp.nttx.co.jp>
[[pgsql-jp: 33349] SQL文の書き方]
<miyabi_777 @ itpmail.itp.ne.jp> wrote:

> A  text
> B  timestamp
> C  timestamp
> 
> というテーブルがあって、Bは登録日時、Cは更新日時です。
> 登録しただけのときはCはNULLになっています。
> 
> で、これらから、CにデータあるときはCから、CがNULLなら
> Bから、90日以上経ったAを取得したいのですが、どのような
> SQL文を書くのがいいのでしょう?

SELECT * FROM thetable
  WHERE COALESCE(C, B) <= (CURRENT_TIMESTAMP - INTERVAL '90 days');

で如何でしょう。

COALESCE(C, B) は (CASE WHEN C IS NULL THEN B ELSE B END) とも書
けます。


―[ Tietew ]――――――――――――――――――――――――――――
Mail: tietew @ tietew.net / tietew @ raug.net
Web : http://www.tietew.net/     Tietew Windows Lab.
PGP fingerprint: 26CB 71BB B595 09C4 0153  81C4 773C 963A D51B 8CAA




pgsql-jp メーリングリストの案内