[pgsql-jp: 27983] 【PostgreSQL】文字列を数値でselect
Kawasaki -S5- Yusuke
u-suke @ kawa.net
2002年 11月 16日 (土) 12:58:49 JST
川崎。最近もかわいい調査DBでやったんだけど、DBでは
型チェックが入るので文字列と数値を簡単には比較(=)できない。
数値を文字列に変換するのは、自動にできるし、フォーマット指定も可能。
逆に文字列を数値に変換するのは、少し面倒。
DB中の文字列を数値に変換するには↓の方法もある。
> From: Mashiki <mashiki @ yanah.com>
> To: pgsql-jp @ ml.postgresql.jp
> Date: Sat, 16 Nov 2002 00:01:40 +0900
> Subject: [pgsql-jp: 27978] Re: 文字列を数値でselect する方法
>
(前略)
> create table testtable (
> id int,
> value char(10)
> );
> insert into testtable values(1, '1234');
> insert into testtable values(2, '0001234');
> insert into testtable values(3, ' 1234');
>
>
> として、postgresql7.2.1で試しましたが、
>
> select id from testtable where value=1234;
>
> だと1件もヒットしません。
>
> select id from testtable where int8(trim(value))=1234;
>
> や
>
> select id from testtable
> where to_number(trim(value),'999999999')=1234;
>
> ならすべて、検索できます。
>
> select id from testtable
> where to_number(ltrim(rtrim(value)),'999999999')=1234;
>
> なら、Oracleでも共通でいけるのではないでしょうか
>
> # でも、これだとインデックスが効かないので、はじめから数値型で
> # 定義しておきたいところ
>
pgsql-jp メーリングリストの案内