Использование VALUE для создания временной таблицы - PullRequest
0 голосов
/ 02 июля 2019

Какова цель фиктивной функции abc123 () в следующих запросах? Они оба работают, но я не понимаю необходимости фиктивной функции.

Я пытался удалить его, но всегда с синтаксическими ошибками.

  SELECT MAX(NumbersTable) AS NumbersTable
   FROM ( VALUES (1), (3), (2) ) AS abc123(NumbersTable)

   SELECT TOP 1 NumbersTable
   FROM ( VALUES (1), (3), (2) ) AS abc123(NumbersTable)
   ORDER BY NumbersTable DESC

Я ожидаю, что результат будет 3, и это то, что я получаю.

1 Ответ

2 голосов
/ 02 июля 2019

Это не функция. Он определяет производную таблицу, созданную values. abc123 - псевдоним таблицы. NumbersTable - это имя столбца.

Если вы запустите:

SELECT *
FROM ( VALUES (1), (3), (2) ) AS abc123(NumbersTable)

Вы увидите:

NumbersTable
1
2
3

Потому что NumbersTable - это имя столбца. Вы также можете написать:

SELECT abc123.NumbersTable
FROM ( VALUES (1), (3), (2) ) AS abc123(NumbersTable)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...