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

Откуда:
Сообщений: 5
Предполагаю:

WITH temptable
AS (*Тут запрос который формирует temptable)
SELECT
temptable.something
temptable.something2
FROM temptable

Как вариант
CREATE TABLE temptable (
SELECT
temptable.something
temptable.something2
FROM temptable)

Будет ли корректно обрабатываться что-то из этого? Если нет что надо исправить или как реализовать по другому?
20 июл 11, 15:26    [11000912]     Ответить | Цитировать Сообщить модератору
 Re: Как дать имя таблице, которая - результат запроса?  [new]
Glory
Member

Откуда:
Сообщений: 104751
SELECT .. INTO mytable2 FROM mytable1 ...
20 июл 11, 15:29    [11000946]     Ответить | Цитировать Сообщить модератору
 Re: Как дать имя таблице, которая - результат запроса?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
username84,

так эта результирующая таблица - настоящая? Или виртуальная?
20 июл 11, 15:33    [11000987]     Ответить | Цитировать Сообщить модератору
 Re: Как дать имя таблице, которая - результат запроса?  [new]
username84
Member

Откуда:
Сообщений: 5
iap
Виртальная

Glory
Это для виртуальной таблицы?
20 июл 11, 15:35    [11000999]     Ответить | Цитировать Сообщить модератору
 Re: Как дать имя таблице, которая - результат запроса?  [new]
username84
Member

Откуда:
Сообщений: 5
Вообще она результат запроса - производная (т.е. не временная локальная)
20 июл 11, 15:40    [11001049]     Ответить | Цитировать Сообщить модератору
 Re: Как дать имя таблице, которая - результат запроса?  [new]
username84
Member

Откуда:
Сообщений: 5
Все вроде понял, вот:

SELECT
title
, category_name
FROM
( SELECT
entries.title
, entries.created
, categories.name AS category_name
FROM
entries
INNER JOIN categories
ON categories.category = entries.category
) AS entries_with_category

Только после этого нужна команда go? Спасибо iap, понял по какому ключевому слову искать
20 июл 11, 15:43    [11001084]     Ответить | Цитировать Сообщить модератору
 Re: Как дать имя таблице, которая - результат запроса?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
username84
Glory
Это для виртуальной таблицы?
Нет.

Раз таблица "виртуальная", то её имя называется "алиасом" (для CTE - имя CTE),
который объявляется исключительно во FROM запроса (кроме CTE и команды MERGE)
Между этой "таблицей" и алиасом может стоять ключевое слово "AS".
После алиаса в скобках можно перечислить имена полей этой виртуальной "таблицы".
Если этого не сделать, то именами "полей" станут алиасы полей запроса.

Никаких CREATE выполнять не надо.
20 июл 11, 15:47    [11001125]     Ответить | Цитировать Сообщить модератору
 Re: Как дать имя таблице, которая - результат запроса?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
username84
Только после этого нужна команда go?
GO - это не команда, а разделитель пакетов команд в некоторых клиентских приложениях,
например, SQLCMD.EXE или QueryAnalizer или SQL Server Management Studio и т.д.
Сервер ничего про такое слово как "GO" не знает и очень удивляется, когда его видит!
20 июл 11, 15:51    [11001153]     Ответить | Цитировать Сообщить модератору
 Re: Как дать имя таблице, которая - результат запроса?  [new]
username84
Member

Откуда:
Сообщений: 5
iap,

Спасибо огромнейшее! Как раз составляю первые запросы, вы мне очень помогли.
20 июл 11, 15:59    [11001220]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить