From: | Clark Evans <clark(dot)evans(at)manhattanproject(dot)com> |
---|---|
To: | Eduardo Noeda <enoeda(at)virtualsw(dot)es> |
Cc: | pgsql-sql(at)postgreSQL(dot)org |
Subject: | Re: [SQL] IIF.. |
Date: | 1999-03-29 21:34:08 |
Message-ID: | 36FFF1D0.FB1986CA@manhattanproject.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Eduardo Noeda wrote:
> function like SQL Server's "iif" in a SELECT query.
Try this...
--------------------------------
--
-- Drop the iff function if it exists
--
DROP FUNCTION iff(bool,text,text);
--
-- Install procedural language, if it is not already
-- installed. You may have to change the shared library
-- location to match your installation.
--
CREATE FUNCTION plpgsql_call_handler () RETURNS OPAQUE AS
'/opt/pgsql/lib/plpgsql.so' LANGUAGE 'C';
CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql'
HANDLER plpgsql_call_handler
LANCOMPILER 'PL/pgSQL';
--
-- Create the IFF function
--
create function iff(bool,text,text) RETURNS text AS '
BEGIN
IF $1 = true THEN
RETURN $2;
ELSE
RETURN $3;
END IF;
END;
' LANGUAGE 'plpgsql';
--
-- Simple test plan.
--
SELECT iff( 1 = 1, 'YEP', 'NOPE' );
SELECT iff( 1 = 0, 'YEP', 'NOPE' );
SELECT iff( 'x'::text = 'y'::text , 'YEP', 'NOPE' );
SELECT iff( 'x'::text = 'x'::text , 'YEP', 'NOPE' );
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 1999-03-29 22:59:01 | Re: [SQL] union on views] |
Previous Message | Jackson, DeJuan | 1999-03-29 20:30:16 | RE: [SQL] union on views |