Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 IF UNION Как объединить таблицы в зависимости от условия  [new]
MSSQLAndDotNet
Member

Откуда:
Сообщений: 10398
Здравствуйте, подскажите как быть:
есть такой скрипт(см ниже)
Нужно
если @option_num = 0, то объединить все таблицы
если @option_num = 1, то выбрать только первую
если @option_num = 2, то выбрать только вторую
и тд

DECLARE @option_num int = 0
...
SELECT ... FROM tb1
UNION
SELECT ... FROM tb2
UNION
SELECT ... FROM tb3
UNION
SELECT ... FROM tb4
UNION
SELECT ... FROM tb5


Если делать так
DECLARE @all_includ bit = 1
...
IF @option_num = 0
	SET @all_includ = 1
ELSE
	SET @all_includ = 0

IF (@all_includ = 1 OR @option_num = 1) BEGIN
SELECT ... FROM tb1
END
UNION
IF (@all_includ = 1 OR @option_num = 2) BEGIN
SELECT ... FROM tb2
END
UNION


пишет не правильный синтаксис около UNION

как правильно сделать?
Спасибо
20 мар 14, 15:21    [15760346]     Ответить | Цитировать Сообщить модератору
 Re: IF UNION Как объединить таблицы в зависимости от условия  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
SELECT ... FROM tb1 WHERE @option_num IN(0,1)
UNION ALL
SELECT ... FROM tb2 WHERE @option_num IN(0,2)
UNION ALL
SELECT ... FROM tb3 WHERE @option_num IN(0,3)
..........................
20 мар 14, 15:25    [15760380]     Ответить | Цитировать Сообщить модератору
 Re: IF UNION Как объединить таблицы в зависимости от условия  [new]
MSSQLAndDotNet
Member

Откуда:
Сообщений: 10398
iap,
спасибо
за ALL отдельное спасибо
20 мар 14, 15:27    [15760391]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить