今天我发现了一个类似的查询
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]
任何帮助表示赞赏
今天我发现了一个类似的查询
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]
任何帮助表示赞赏
您的查询:
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
带有别名的文字值col1
,所以返回带有相同别名的SELECT 2 Col1 FROM [Table1]
文字值(不同的选择)集合运算符,只会给你两个值 (1, 2),因为它们是唯一的不同值。2
col1
UNION