1

我的书说

就最小 >SELECT 查询要求而言,标准 SQL 和 T-SQL 之间存在一个有趣的区别。根据标准 SQL,SELECT 查询必须至少具有 FROM 和 SELECT 子句。相反,T-SQL 支持只有 SELECT 子句而没有 FROM 子句的 SELECT 查询。这样的查询就像是针对只有一行的假想表发出的。例如,以下查询根据标准 SQL 无效,但根据 T-SQL 有效。

SELECT 10 AS col1, 'ABC' AS col2;

col1    col2
10      ABC

这个功能怎么可能有用?

4

1 回答 1

4

并非所有来自数据库的数据实际上都来自数据库/表。也许您想要一些元数据或服务器端变量:

SELECT @server_side_variable;

其他数据库通过使用名为 的虚拟表来绕过限制DUAL,因此您有一个FROM子句,但它实际上并不指向数据库中的任何“真实”表:

SELECT @server_side_variable FROM dual;
于 2013-08-23T17:58:34.223 回答