我有一个简单的 sql 语句如下
案例 1:
select 1 as a
union
select 2 as a
输出:这个案例按预期工作
![enter image description here](/image/Avwsd.jpg)
案例 2:
select 1 as a
union
select 2 as b
输出:虽然在我的第二个选择中别名是“b”,但它仍然显示别名“a”。
为什么不能从第二个 select 语句中取别名?
我们如何让 sql 从第二个选择查询中选择别名?
![enter image description here](/image/AtpDZ.jpg)
案例 3:
select 1
union
select 2 as b
输出:即使我上面的第一个 select 语句没有任何别名,但第二个仍然有,为什么结果仍然显示“无列名”?
![enter image description here](/image/NRdU9.jpg)
最佳答案
您可以将所有内容包装在一个 SELECT
周围,并使用您想要的别名为该列添加别名。
select a as [b] -- just alias it here with whatever you want
from (
select 1 as a
union
select 2 as b
...) result_set
但正如@Will 所说,就是这样,无法改变。
或:
只需确保在顶部使用带有所需“别名”的查询,并将
UNION
与包含其他查询/值的单个 SELECT
语句一起使用。select 2 as b
union
select a
from (
select 1 as a
union
select 3 as c
union
... ) result_set
关于sql-server - 联合/联合所有查询中的别名 - SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42491081/