Conditional WHERE with SELECT IN
От: Spender Канада http://rybkov.livejournal.com
Дата: 20.10.09 19:06
Оценка:
Доброе время суток, Всем!

Никак не могу решить такую задачу.
Надо сделать SQL-выборку (SQL Server 2005, так на всякий случай)

SELECT
    *
FROM [dbo].[Table] AS Table
WHERE Table.Id ??? 
CASE
    WHEN  @Flag <> ''                    
        THEN ( 1, 2, 3 )
    ELSE (4, 5, 6)
END


Хотелось бы вмето ??? вставить IN. Но не работает.
Если встаить = и вместо списка использовать 1, то работает. Но это не интересно.

Есть ли способ решиить эту "проблему"?

Спасибо.
Re: Conditional WHERE with SELECT IN
От: vmpire Россия  
Дата: 20.10.09 19:22
Оценка: 63 (2) +1
Здравствуйте, Spender, Вы писали:

S>
S>SELECT
S>    *
S>FROM [dbo].[Table] AS Table
S>WHERE Table.Id ??? 
S>CASE
S>    WHEN  @Flag <> ''                    
S>        THEN ( 1, 2, 3 )
S>    ELSE (4, 5, 6)
S>END
S>


S>Хотелось бы вмето ??? вставить IN. Но не работает.

S>Если встаить = и вместо списка использовать 1, то работает. Но это не интересно.

S>Есть ли способ решиить эту "проблему"?


S>Спасибо.


WHERE (@Flag <> '' AND Table.Id IN (1, 2, 3)) OR (@Flag = '' AND Table.Id IN (4, 5, 6))
Re[2]: Conditional WHERE with SELECT IN
От: Spender Канада http://rybkov.livejournal.com
Дата: 20.10.09 19:40
Оценка:
Здравствуйте, vmpire, Вы писали:

V>
V>WHERE (@Flag <> '' AND Table.Id IN (1, 2, 3)) OR (@Flag = '' AND Table.Id IN (4, 5, 6))
V>


Спасибо!

В эту сторону-то я и забыл подумать
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.