在SQL Server 2008中选择1 Col_Name表示?

时间:2012-11-19 13:50:59

标签: sql sql-server

今天我找到了像

这样的查询
SELECT 1 [Col_name] FROM MyTable

SELECT  [Col_name] FROM MyTable

两者似乎都返回相同的结果。我很困惑。

这是实际查询:

SELECT 1 Col1 FROM [Table1] WHERE Col1 = 1 

UNION

SELECT 2 Col1  FROM [Table1] 

感谢任何帮助

2 个答案:

答案 0 :(得分:3)

您的查询:

SELECT 1 [Col_name] FROM MyTable

将返回带有别名1的文字值col_name。即使col_name是您表格中的标识符。

然而:

SELECT [Col_name] FROM MyTable;

将从您的表中选择col_name

同样的:

SELECT 1 Col1 FROM [Table1] WHERE Col1 = 1 
UNION
SELECT 2 Col1  FROM [Table1] 

只会给你两行:

1
2

无论表中的值如何。由于SELECT 1 Col1 FROM [Table1] WHERE Col1 = 1返回带有别名1的字面值col1SELECT 2 Col1 FROM [Table1]会返回带有{2的字面值col1的字面值UNION 1}}(区别选择)设置运算符,只会给出两个值(1,2),因为它们是唯一的不同值。

Live Demo

答案 1 :(得分:1)

在实际查询中,Col1被称为列的别名,其值为1

如果未指定Col1,则值为1的列没有columnName。