WITH Extracted_Sessions (a,b) AS
(
select a,b from db.tblnm
)
Что делает этот SQL? Может кто-нибудь объяснить, пожалуйста?Что такое общее выражение таблицы?
WITH Extracted_Sessions (a,b) AS
(
select a,b from db.tblnm
)
Что делает этот SQL? Может кто-нибудь объяснить, пожалуйста?Что такое общее выражение таблицы?
Going догадаться, что это общее табличное выражение: это конструкция, которая во многом похожа на временную таблицу:
Используя имя Extracted_Sessions
с колоннами a
и b
вместо запроса select a, b from db.tblnm
... делать вещи на Extracted_Sessions
, как будто это была настоящая вещь.
Обычно используется для создания рекурсивных запросов.
спасибо Майк, вы знаете, как работает вышеперечисленный – lucky
Я не понимаю ваш вопрос. Синтаксис (я полагаю, основан на том, действительно ли вы используете MS SQL или нет) CTE, чтобы помочь вам найти дополнительную информацию, но я не знаю, что ваш вопрос или что вы хотите сделать или попробовали , – Mikeb
CTE не является конструкцией «SQL Server». Это ANSI SQL и поддерживается всеми современными СУБД в наши дни (у Oracle и DB2 это было на века). –
Это называется «общим табличным выражением». Функция SQL, которая была введена в SQL 99, если я не ошибаюсь.
Он очень похож на производную таблицу. Ваш пример эквивалентен
select a,b
from (
select a,b from db.tblnm
) as Extracted_Sessions
Основное отличие заключается в том, что вы можете использовать CTE более чем один раз в запросе, в то время как с производной таблицей вам нужно повторить Базовый запрос, каждый раз, например:
WITH Extracted_Sessions (a,b) AS
(
select a,b from db.tblnm
)
select *
from Extracted_Sessions e1
join Extracted_Sessions e2 on e1.a = e.2b
(Обратите внимание, что это, вероятно, не имеет смысла, это просто демонстрация того, что вы можете получить доступ к CTE более одного раза).
Postgres руководство имеет хороший учебник по КТР: http://www.postgresql.org/docs/current/static/queries-with.html
Какой вкус SQL это? –
@joeframbach: выше, на самом деле, стандартный ANSI SQL. –
Посмотрите обычное выражение таблицы или CTE. Это альтернативное имя выражения, которое можно использовать в следующем SELECT. –