如果我选择某个名称作为名称,那么会发生什么?

时间:2011-12-16 21:09:54

标签: sql sql-server sql-server-2000

我已经回答了我的问题,但没有在这里看到它,所以我们走了。如果被问到确切的话,请随时链接到问题。 我将我的问题简化为以下代码:

SELECT 'a' AS col1, 'b' AS col1

这会给出相同的列名错误吗?

是否总是返回最后一个值,或者col1可能是'a'吗?

3 个答案:

答案 0 :(得分:3)

我不确定你为什么会想要这个,但是我在Oracle(10g)中尝试了它并且它工作正常,返回两列。我意识到你已经特别询问过SQL Server,但我觉得这很有意思。这个很有用。

编辑:它也适用于MySQL。

答案 1 :(得分:2)

SQL 2008 r2中,它作为独立查询有效。在某些情况下,它会产生错误(不完整的清单):

  • 内联视图

  • 公用表条目

  • 报告服务使用输出时的存储过程,可能是类似的集成工具

很难想象你会想要重复行名称的情况,并且很容易想到现在用重复编写查询的方式可能在将来变坏。

答案 2 :(得分:2)

它适用于最终查询:

enter image description here

但是,如果在子选择中执行此操作并在外部查询中引用不明确的列别名,则会收到错误:

enter image description here