powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как это сделать одним запросом?
9 сообщений из 9, страница 1 из 1
Как это сделать одним запросом?
    #40050742
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть три запроса типа

Код: sql
1.
2.
3.
select @p1=p from d where name=@name1
select @p2=p from d where name=@name2
select @p3=p from d where name=@name3


Можно ли мутонуть это все одним запросом?

ЗЫ. Вопрос вызван извечной тягой к знаниям и к оптимизации
...
Рейтинг: 0 / 0
Как это сделать одним запросом?
    #40050744
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

case when name=@name1 then @p1=p ... end
...
Рейтинг: 0 / 0
Как это сделать одним запросом?
    #40050762
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Ролг Хупин,

case when name=@name1 then @p1=p ... end


лайкнул
...
Рейтинг: 0 / 0
Как это сделать одним запросом?
    #40050768
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
then @p1=p
это как ?


Код: sql
1.
@p1= case when name=@name1 then p else @p1 end
...
Рейтинг: 0 / 0
Как это сделать одним запросом?
    #40050769
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
name или name + p уникально?
...
Рейтинг: 0 / 0
Как это сделать одним запросом?
    #40050775
Агрох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что именно имеется ввиду под "одним запросом"?
И зачем это нужно в данном случае?

Стал я забывать T-SQL, но попробую:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
WITH R0 AS (
SELECT
max(CASE WHEN name = @name1 THEN p ELSE NULL END) AS p1,
max(CASE WHEN name = @name2 THEN p ELSE NULL END) AS p2,
max(CASE WHEN name = @name3 THEN p ELSE NULL END) AS p3
from d where name IN (@name1, @name2, @name3)
)
SELECT @p1=p1, @p2=p2, @p3=p3
FROM R0
...
Рейтинг: 0 / 0
Как это сделать одним запросом?
    #40050794
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm
name или name + p уникально?


Судя по исходному запросу - любой Р из списка... Автора, вероятно, это устраивает.
...
Рейтинг: 0 / 0
Как это сделать одним запросом?
    #40051018
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
invm
name или name + p уникально?


Судя по исходному запросу - любой Р из списка... Автора, вероятно, это устраивает.


не любой, а конкретный, как в этих отдельных запросах

select @p1=p from d where name=@name1
select @p2=p from d where name=@name2
select @p3=p from d where name=@name3
...
Рейтинг: 0 / 0
Как это сделать одним запросом?
    #40051027
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

В группе @name1 может быть несколько p.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как это сделать одним запросом?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]