Altering built-in functions cast

Started by Matthew Peterover 20 years ago3 messagesgeneral
Jump to latest
#1Matthew Peter
survivedsushi@yahoo.com

Anyone know how I could alter the cast of the nullif()
function directly to return INT?

We use NULLIF() for adding [1|0|null] according to the
evalution of nullif('x','') into integer columns.
Where x is an integer and sometimes a empty string,
which if it's an empty string (x='') then we add NULL
cause NULLIF says if '' == '' then return NULL

Thank you,
matthew

__________________________________
Do you Yahoo!?
Yahoo! Mail - Helps protect you from nasty viruses.
http://promotions.yahoo.com/new_mail

#2Richard Huxton
dev@archonet.com
In reply to: Matthew Peter (#1)
Re: Altering built-in functions cast

Matt A. wrote:

Anyone know how I could alter the cast of the nullif()
function directly to return INT?

We use NULLIF() for adding [1|0|null] according to the
evalution of nullif('x','') into integer columns.
Where x is an integer and sometimes a empty string,
which if it's an empty string (x='') then we add NULL
cause NULLIF says if '' == '' then return NULL

Just add a wrapper function:

CREATE FUNCTION nullif_always_int(text) RETURNS integer AS '
SELECT nullif($1,'''')::int;
' LANGUAGE SQL;

--
Richard Huxton
Archonet Ltd

#3Matthew Peter
survivedsushi@yahoo.com
In reply to: Richard Huxton (#2)
Re: Altering built-in functions cast

Thank you so much for the reply. I inserted the
function as you said in pgsql. I tried testing it and
got...

PERFECT RESULTS!

THHHHHHHHHHHHHAAAAAAAAAAANKKKKKKKKKKK YOUUUUUUUUUUU!

*kisses feet* j/k But honestly, Thank you very much.
You saved me from suicide.

--- Richard Huxton <dev@archonet.com> wrote:

Matt A. wrote:

Anyone know how I could alter the cast of the

nullif()

function directly to return INT?

We use NULLIF() for adding [1|0|null] according to

the

evalution of nullif('x','') into integer columns.
Where x is an integer and sometimes a empty

string,

which if it's an empty string (x='') then we add

NULL

cause NULLIF says if '' == '' then return NULL

Just add a wrapper function:

CREATE FUNCTION nullif_always_int(text) RETURNS
integer AS '
SELECT nullif($1,'''')::int;
' LANGUAGE SQL;

--
Richard Huxton
Archonet Ltd

---------------------------(end of
broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faq

____________________________________________________
Start your day with Yahoo! - make it your home page
http://www.yahoo.com/r/hs