Можно ли использовать подзапрос более одного раза? - PullRequest
1 голос
/ 17 октября 2019

Мне было интересно, можно ли использовать подзапрос в SQL более одного раза.

Например:

with subQuery as (
select id from someTable1
)
update someTable2
set someValue = 1
where id in (select * from subQuery)

select * from someTable2
where id in (select * from subQuery)

...

На данный момент SQL выдает ошибку на (select * from subQuery) в предложении select * someTable2, говоря «Недопустимое имя объекта subQuery». Так есть ли способ использовать subQuery более одного раза, не добавляя таблицу или не выполняя запрос несколько раз, изменяя первый оператор?

1 Ответ

1 голос
/ 17 октября 2019

CTE находится в области действия только для одного запроса, но запрос может как ОБНОВИТЬ, так и ВЫХОДИТЬ данные. например,

with subQuery as (
select id from someTable1
)
update someTable2
set someValue = 1
output inserted.*
where id in (select * from subQuery)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...