Foxpert Software Development & Consulting

Menu

Whitepapers
Downloads
Knowlbits
Guineu

2007-03Mar-29

Translating Oracle's NVL2 function to Microsoft SQL Server

On Technet Microsoft states that the proper translation for Oracle's NVL2 function:

NVL2 (Salary, Salary*2, 0)

would be

CASE SALARY

WHEN null THEN 0

ELSE SALARY*2

END

They got the Oracle part right, but miserable failed on the syntax of their own server. The correct way to use CASE with NULL values is

CASE

WHEN SALARY IS NULL THEN 0

ELSE SALARY*2

END

In Microsoft SQL Server you use IS NULL and IS NOT NULL to check for NULL. The original expression would always return the value from the ELSE part since the condition SALARY=null never becomes true.

Previous KnowlBits

RSS

October 2009 (2)

September 2009 (1)

August 2009 (4)

July 2009 (2)

June 2009 (2)

May 2009 (1)

April 2009 (1)

March 2009 (1)

August 2008 (1)

July 2008 (2)

May 2008 (1)

April 2008 (2)

January 2008 (2)

December 2007 (2)

November 2007 (2)

October 2007 (1)

September 2007 (1)

August 2007 (5)

July 2007 (4)

May 2007 (6)

March 2007 (3)

February 2007 (7)

January 2007 (6)

November 2006 (1)

October 2006 (3)

September 2006 (10)

June 2006 (2)

May 2006 (6)

April 2006 (1)


Impressum Kontakt Contact