Tuesday, August 2, 2011

SQL Server Denali: IIF Logical Function

If you have developed some sort of applications using Microsoft Access, then you are definitely familiar with “IIF” logical function. In SQL Server, prior to SQL Server Denali we can use “CASE” instead of “IIF” as this logical function was not available. But in SQL Server Denali CTP3, “IIF” is available with same ease and functionality.
According to BOL”IIF is a shorthand way for writing a CASE statement. It evaluates the Boolean expression passed as the first argument, and then returns either of the other two arguments based on the result of the evaluation. That is, the true_value is returned if the Boolean expression is true, and the false_value is returned if the Boolean expression is false or unknown. true_value and false_value can be of any type. The same rules that apply to the CASE statement for Boolean expressions, null handling, and return types also apply to IIF.
The fact that IIF is translated into CASE also has an impact on other aspects of the behavior of this function. Since CASE statements can nested only up to the level of 10, IIF statements can also be nested only up to the maximum level of 10. Also, IIF is remoted to other servers as a semantically equivalent CASE statement, with all the behaviors of a remoted CASE statement.”

Let’s try it with simple example.
 
(Only applicable for SQL Server Denali CTP 3)
DECLARE @weather VARCHAR(50) = 'Rainy', -- Rain/Sunny
              @umbrella BIT = 1 --1= Yes we have, 0=No we don't have
--Single IIF
SELECT IIF(@weather ='Rainy','Oh! its raining','Sun is shinning..Enjoy')
--Multiple IIF            
SELECT IIF(
       @weather = 'Rainy',IIF(
                           @umbrella = 1,'Its raining but you can take umbrella with you'
                                        ,'Its raining, stay inside')
                          ,'Sun is shining..Enjoy')



------------------------------------------------------------------------------------
Read More about SQL Server 2012 (Code Name: Denali

·         Introducing New Edition "Business Intelligence"

·         Changing Backup Files Default Path is More Easy Now

·         New Backup/Restore Options

·         CTP 3 Product Guide Released

·         TRY_CONVERT(), a Good Addition

·         Table Partition Limit Enhancement

·         Format(), a Most Wanted Function

·         Get Date/Time from Parts

·         New Function to Get Last Date of Month

·         A New More Flexible Create Index Dialog box

No comments:

Post a Comment

All suggestions are welcome