[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 メーリングリストの案内