There are the two new logical functions in SQL Server 2012:
1. IIF() Function
2. Choose() Function
IIF Logical Function: The IIF function, which is available in SQL Server 2012, returns one of the two values depending upon whether the Boolean expression evaluates to either True or False.
Example:
DECLARE @Value1 INT = 10
DECLARE @Value2 INT = 20
SELECT IIF ( @Value1 > @Value2 , 'TRUE', 'FALSE' ) AS IIFResult
GO
|
And result will be:
CHOOSE Logical Function: The CHOOSE function is used to return the value out of a list based on specified index number. You can think of it as an array kind of thing. The Index number here starts from 1.
Some points about Choose function:
· If an index value exceeds the bound of the array it returns NULL
· If the index value is negative then that exceeds the bounds of the array therefore it returns NULL
· If the provided index value has a float data type other than int, then the value is implicitly converted to an integer
Example: In the example I’ll show results with all the above mentioned points:
--Test Choose function
SELECT CHOOSE(2, 'Sachin','Sandeep', 'Raman', 'Shivanshu') AS 'My Name'
GO
--Test Choose with index value exceeds the bound of the array
SELECT CHOOSE(5, 'Sachin','Sandeep', 'Raman', 'Shivanshu') AS 'IndexExceeds'
GO
--Test Choose with negative index value (it exceeds the bound of the array)
SELECT CHOOSE(-1, 'Sachin','Sandeep', 'Raman', 'Shivanshu') AS 'NegativeIndex'
GO
--Test Choose with decimal index value (automatically converted to Int)
SELECT CHOOSE(2.5, 'Sachin','Sandeep', 'Raman', 'Shivanshu') AS 'DecimalIndex'
GO
|
And here is the Result of all queries:
Comments
Post a Comment