Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2008 Forums
 Transact-SQL (2008)
 UNION with IF clause

Author  Topic 

Ciupaz
Posting Yak Master

232 Posts

Posted - 2012-12-05 : 08:08:18
Hello all,
in a my stored procedure, I have several SELECT combined to an UNION to get my results.
Something like this:


Select Field1,Field2
From TableA A inner join TableB B
On A.ID = B.ID

UNION

Select Field1,Field2
From TableC C inner join TableD D
On C.ID = D.ID

UNION

Select Field1,Field2
From TableE E inner join TableF F
On E.ID = F.ID


Then I have to add another Select block only if a condition is valid, like:


IF (@DataDaUTC<= @DataStartNBDO)

Select Field1,Field2
From TableY Y inner join TableZ Z
On Y.ID = Z.ID


but in this way does not work in SQL Server 2008.

How can I solve this problem?


Thanks in advance.


Luigi

sunitabeck
Master Smack Fu Yak Hacker

5155 Posts

Posted - 2012-12-05 : 08:11:48
Instead of using the if clause, insert your condition as a where clause

....
UNION

Select Field1,Field2
From TableE E inner join TableF F
On E.ID = F.ID

UNION

Select Field1,Field2
From TableY Y inner join TableZ Z
On Y.ID = Z.ID
WHERE @DataDaUTC<= @DataStartNBDO
Go to Top of Page

jimf
Master Smack Fu Yak Hacker

2875 Posts

Posted - 2012-12-05 : 08:14:21
Those params aren't part of the table, so brute force may work

IF @DataDaUTC <= @DataStartNBDO
Select Field1,Field2
From TableA A inner join TableB B
On A.ID = B.ID

UNION

Select Field1,Field2
From TableC C inner join TableD D
On C.ID = D.ID

UNION

Select Field1,Field2
From TableE E inner join TableF F
On E.ID = F.ID

UNION

Select Field1,Field2
From TableY Y inner join TableZ Z
On Y.ID = Z.ID


ELSE

Select Field1,Field2
From TableA A inner join TableB B
On A.ID = B.ID

UNION

Select Field1,Field2
From TableC C inner join TableD D
On C.ID = D.ID


Jim

Everyday I learn something that somebody else already knew
Go to Top of Page

Ciupaz
Posting Yak Master

232 Posts

Posted - 2012-12-05 : 08:28:04
Thank you Sunita and Jim
I've adopted the Sunita's solution.

Luigi
Go to Top of Page
   

- Advertisement -