[pgsql-jp: 33971] Re: 日付の要素の抽出

Kazumasa Gotoh kgotoh @ cic-kk.co.jp
2004年 9月 9日 (木) 14:29:55 JST


From: "H.Kurabayashi" <kurabayashih @ citizen.co.jp>
Date: Thu, 09 Sep 2004 14:18:42 +0900

> > EXTRACT関数のSourceに列名を指定することは出来ないのでしょうか?
> サブクエリーを使うと上手くいくみたいです。
> 
> select EXTRACT(DAY FROM (SELECT i from test));

サブクエリーで帰ってくる値がひとつであればそれでうまくいきますが、
複数の値が帰ってくるようなケースでは以下のようになります。

  kgotoh=> create table test ( col timestamp);
  CREATE TABLE
  kgotoh=> insert into test values ('now');
  INSERT 17161 1
  kgotoh=> insert into test values ('now');
  INSERT 17162 1
  kgotoh=> insert into test values ('now');
  INSERT 17163 1
  kgotoh=> select extract(day from (select col from test));
  ERROR:  more than one row returned by a subquery used as an expression

extract の仕様上これは仕方ないですね。プログラムからの利用であれば
対処方法はありますが、SQL で一発となると、方法はあるのでしょうか?

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
(株) セントラル情報センター
                             後藤和政    kgotoh @ cic-kk.co.jp



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