Tuesday, January 27, 2015

Alternate to multiple IF statements

Consider the perform and use the one which suits you:



--Option 1: Nested IF
DECLARE @reportname VARCHAR(5) = '1'
IF (@reportname = '1')
BEGIN
SELECT a,b,c
FROM x
END
ELSE IF (@reportname = '2')
BEGIN
SELECT d,e,f
FROM y
END
ELSE
BEGIN
SELECT cols
FROM myTable
END
-- Option 2: CASE WHEN...
DECLARE @SQL VARCHAR(8000)
SELECT @SQL = CASE
WHEN @reportname = '1'
THEN 'SELECT a,b,c FROM x'
WHEN (@reportname = '2')
THEN 'SELECT d,e,f FROM y'
ELSE 'SELECT cols FROM myTable'
END
EXECUTE (@SQL)





-Vaibhav Chaudhari


No comments:

Post a Comment