I find myself frequently typing (postgresql-6.5.1) the following:
SELECT * FROM table WHERE (f1 ~* 'foo' OR f2 ~* 'foo' OR f3 ~* 'foo');
Can "CREATE FUNCTION" be used? Something like
CREATE FUNCTION f(string) RETURNS bool AS '(f1 ~* '$1' OR f2 ~* '$1' ...)';
and then type
SELECT * FROM table WHERE f('foo');
I tried to define such a function, but encountered two problems:
o It didn't "accept" the function's definition
o Syntax errors (apostrophes need escaping ... I tried mixing quotes and apostrophes, also using '\' chars ... nothing
seemedto work)
I know that I can define VIEWs (and FUNCTIONs) that contain a specific
SELECT statement, but I'd prefer to have definitions of just the
repeating expressions.
Another thing I'd like to "abbreviate" is the second phrase in
SELECTs. E.g,
SELECT x FROM table;
instead of
SELECT x1,x2,x3 FROM table;
where 'x' is somehow equivalent to 'x1,x2,x3'.
I read the online docs and searched a few SQL books, but can't seem to
find the correct approach. Ideas?
Thanks for any help,
-Prof Kenneth H Jacker khj@cs.appstate.edu
-Computer Science Dept www.cs.appstate.edu/~khj
-Appalachian State Univ
-Boone, NC 28608 USA