SQL Server:选择Top 0?

Dav*_*ler 35 sql sql-server sql-server-2005

我们刚刚在一个旧的生产存储过程中遇到过这个问题(这里还有很多内容,但这只是其逻辑的一个部分).为什么有人会从表中选择前0行?这是某种我不熟悉的SQL黑客或技巧吗?

Ale*_* K. 47

它是一种获得空集的方式; 例如,创建一个新的空表,其列与现有的列相同;

SELECT TOP 0 * INTO new_table FROM old_table
Run Code Online (Sandbox Code Playgroud)

或者作为列名的来源
或作为返回列详细信息但没有数据到客户端层的方法
或作为查询连接的查询

它一样;

SELECT * FROM table WHERE 0=1
Run Code Online (Sandbox Code Playgroud)


ric*_*ard 28

为UNION ALL中的列命名

一定要阅读Alex K.的答案.他有很多我使用过的理由.这只是最明显的一个.