it's works, thanks a lot! regards, Yi On Tue, 2008-07-15 at 13:30 +0200, Pavel Stehule wrote: > Hello > > in this case you must not use quoting > > postgres=# create or replace function anytest(val text) returns boolean as $$ > begin > perform 1 where val in ('hello', 'world', 'test'); > if not found then > return false; > else > return true; > end if; > end; > $$ language plpgsql; > CREATE FUNCTION > Time: 3,342 ms > postgres=# select anytest('hello'); > anytest > --------- > t > (1 row) > > Time: 42,034 ms > postgres=# select anytest('helloa'); > anytest > --------- > f > (1 row) > > Time: 0,468 ms > postgres=# > > you have to use quoting only together dynamic sql, etc EXECUTE statement > > regards > Pavel Stehule > > 2008/7/15 Yi Zhao <yi.zhao@xxxxxxxxxxxxxxx>: > > I want to check a variable is in a aggregattion or not, so I create a > > function as below: > > > > create or replace function anytest(val text) returns boolean as $$ > > begin > > perform 1 where quote_literal(val) in ('hello', 'world', 'test'); > > if not found then > > return false; > > else > > return true; > > end if; > > end; > > $$ language plpgsql; > > > > but when I used, I got the result below, why? > > > > test=# select anytest('world111'); > > anytest > > --------- > > f > > (1 row) > > > > test=# select anytest('world'); > > anytest > > --------- > > f > > (1 row) > > > > > > any help is appreciated. > > > > regards, > > Zy > > > > > > -- > > Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) > > To make changes to your subscription: > > http://www.postgresql.org/mailpref/pgsql-general > > >