Ramesh T wrote:
> CREATE UNIQUE INDEX idx_load_pick ON pick (case picked when picked='y' then load_id else null end );
>
> how can i convert case expressed to postgres..above it is oracle.
CREATE TABLE pick (picked char(1), load_id integer);
CREATE FUNCTION picked_loadid(character, integer) RETURNS integer
IMMUTABLE STRICT LANGUAGE sql AS
$$SELECT CASE WHEN $1 = 'y' THEN $2 ELSE NULL END$$;
CREATE INDEX idx_load_pick ON pick (picked_loadid(picked, load_id));
*but*
It will only work with queries like:
SELECT * FROM pick WHERE picked_loadid(picked, load_id) IS NOT NULL;
Yours,
Laurenz Albe