首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由UNION组成的表的列名

问由UNION组成的表的列名
EN

Stack Overflow用户
提问于 2008-11-26 07:49:42
回答 3查看 32.4K关注 0票数 12

给定两个简单的表,如下所示:

代码语言:javascript
复制
create table R(foo text);
create table S(bar text);

如果我在一个查询中将它们合并在一起,我该如何命名该列?

代码语言:javascript
复制
select T.????
from (
    select foo
    from R
    union
    select bar
    from S) as T;

现在,在mysql中,我显然可以将T的列称为'foo‘--联合中第一个关系的匹配列的名称。然而,在sqlite3中,这似乎行不通。有没有一种方法可以让它成为所有SQL实现的标准?

如果不是,那么只针对sqlite3如何呢?

更正: sqlite3确实允许您将T的列引用为'foo‘!糟了!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-11-26 08:06:02

虽然没有拼写规则,但我们可以使用联合查询中第一个子查询中的列名来获取联合结果。

票数 13
EN

Stack Overflow用户

发布于 2008-11-26 08:00:33

尝试为列指定别名;

代码语言:javascript
复制
select T.Col1
from (
    select foo as Col1
    from R
    union
    select bar as Col1
    from S) as T;

或者,如果列的名称不是必需的,那么T.*就足够了。

票数 15
EN

Stack Overflow用户

发布于 2012-08-31 18:46:39

您只需要在first select (在SQl Server2008 R2中测试)中使用列别名

代码语言:javascript
复制
select T.Col1
from (
    select 'val1' as Col1
    union
    select 'val2'
    union
    select 'val3'     
) as T;
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/320004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档