使用VALUE制作临时表

时间:2019-07-01 21:44:40

标签: sql sql-server

以下查询中伪函数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 个答案:

答案 0 :(得分:2)

这不是功能。它定义了由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)