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

Откуда:
Сообщений: 660
есть ли возможность этот неправильный код заменить
на правильную конструкцию - в реальной задаче признаков
больше и засчет форков очень длинный код получается
Просто не знал как короче обьяснить, вот и накатал, как
мечталось по безграмотности. Динамику не хочется рисовать.
 select f1,f2,f3 from 
  (
  case 
   when @pr = 1 then (Select f1,f2,f3 from dbo.table_1)
   when @pr = 2 then (Select f1,f2,f3 from dbo.table_2)
  end
  ) as T 
  union 
  select f1,f2,f3 from dbo.table_3
11 янв 15, 12:05    [17102054]     Ответить | Цитировать Сообщить модератору
 Re: case после from ?  [new]
aleks2
Guest
Select f1,f2,f3 from dbo.table_1 where @pr = 1
union all
Select f1,f2,f3 from dbo.table_2 where @pr = 2
union 
select f1,f2,f3 from dbo.table_3
11 янв 15, 12:17    [17102077]     Ответить | Цитировать Сообщить модератору
 Re: case после from ?  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 660
aleks2, ну да - на безграмотный вопрос аналогичный ответ...
11 янв 15, 12:26    [17102084]     Ответить | Цитировать Сообщить модератору
 Re: case после from ?  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
SangYong, дак может стоит попробовать толком объяснить, какую задачу решаете? :)
11 янв 15, 12:36    [17102099]     Ответить | Цитировать Сообщить модератору
 Re: case после from ?  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
SangYong
aleks2, ну да - на безграмотный вопрос аналогичный ответ...
А что не нравится (поподробнее)?
11 янв 15, 12:59    [17102135]     Ответить | Цитировать Сообщить модератору
 Re: case после from ?  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 660
1 внутри одной SQL-конструкции мне нужно по признаку(-ам)
подставить тот или иной набор данных из разных источников
с разными условиями (немогу) - признаки это не есть условие
для where... - это есть условия для построения разных выборок

ex:
если поиск точный (@pr = 1) то: ....where NR = @Nr
если поиск сравнительный (@pr = 2) то: ...where NR like '%' + @Nr + '%'

и таких @Pr много....

2 а потом соединить его union-ом с другими - это могу :)

и вернуть в прогу ОДНИМ рекордсетом - если бы двумя-тремя то без проблем
просто клиент умеет работать толко с одним а не с коллекцией

- я могу это сделать при помощи функций, возвращающих табличное
значение (не хочу поскольку временная таблицы используются) ,
либо построением динамического запроса (тоже не хочу - типа как зло)
- но мечтается одной SQL-конструцией
11 янв 15, 16:32    [17102687]     Ответить | Цитировать Сообщить модератору
 Re: case после from ?  [new]
aleks2
Guest
SangYong
- признаки это не есть условие для where...

Что за религиозные предрассудки?
11 янв 15, 16:36    [17102698]     Ответить | Цитировать Сообщить модератору
 Re: case после from ?  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 660
aleks2,
...ну каждый заблуждается в меру своей образованности
причем в прямой пропорции - кто я такой чтобы не (ту)пить...
11 янв 15, 16:49    [17102737]     Ответить | Цитировать Сообщить модератору
 Re: case после from ?  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
SangYong
aleks2,
...ну каждый заблуждается в меру своей образованности
причем в прямой пропорции - кто я такой чтобы не (ту)пить...
Select f1,f2,f3 from dbo.table_1 where @pr = 1 AND NR = @Nr
union all
Select f1,f2,f3 from dbo.table_2 where @pr = 2 AND NR like '%' + @Nr + '%'
union all
Select f1,f2,f3 from /*и таких @Pr много....*/
union 
select f1,f2,f3 from dbo.table_3
это ОДИН рекордсет!
11 янв 15, 19:01    [17103022]     Ответить | Цитировать Сообщить модератору
 Re: case после from ?  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 660
iap, нда - иногда тупость заразительна - главное чтоб
попала на нужный гумус.
p.s. прочел ВСЮ справку по case...всем спасибо...всех
с отступившим и наступившим...
11 янв 15, 20:34    [17103315]     Ответить | Цитировать Сообщить модератору
 Re: case после from ?  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1887
SangYong
iap, нда - иногда тупость заразительна - главное чтоб
попала на нужный гумус. ...

а не забанить ли ТС за хамство в честь праздников
12 янв 15, 07:00    [17104002]     Ответить | Цитировать Сообщить модератору
 Re: case после from ?  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
SangYong
p.s. прочел ВСЮ справку по case...
Вот это подвиг!
Прочтите еще по UNION заодно, а лучше вот это: Dynamic Search Conditions in T-SQL
12 янв 15, 07:37    [17104073]     Ответить | Цитировать Сообщить модератору
 Re: case после from ?  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 660
LexusR, блин - приношу извинения - под моей учеткой сидел другой человек.
Стал делать поиск по "МОИМ" - вообще не понял о чем речь идет.
Праздники вышибают. Да и сохранять заход вредно. Еще раз приношу извинения
и мои благодарности за ответы.
15 янв 15, 13:49    [17122243]     Ответить | Цитировать Сообщить модератору
 Re: case после from ?  [new]
Axeleron
Member

Откуда: London
Сообщений: 7531
SangYong,

LOL, что за детский сад?
15 янв 15, 14:08    [17122347]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить