当前位置:  开发笔记 > 后端 > 正文

由UNION形成的表的列名

如何解决《由UNION形成的表的列名》经验,为你挑选了3个好方法。

给出了几个这样的简单表格:

create table R(foo text);
create table S(bar text);

如果我在查询中将它们组合在一起,我该怎么称呼该列?

select T.????
from (
    select foo
    from R
    union
    select bar
    from S) as T;

现在,在mysql中,我显然可以将T的列称为'foo' - 联合中第一个关系的匹配列的名称.但是,在sqlite3中,这似乎不起作用.有没有办法在所有SQL实现中做到这一点?

如果没有,那对于sqlite3怎么样?

更正:sqlite3确实允许你将T的列称为'foo'毕竟!哎呀!



1> Ali Ersöz..:

尝试为列提供别名;

select T.Col1
from (
    select foo as Col1
    from R
    union
    select bar as Col1
    from S) as T;

或者如果不需要列的名称那么T.*就足够了.



2> Shyam..:

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



3> Iman Abidi..:

您只需要在第一个选择中使用列别名(在SQl Server 2008 R2中测试)

select T.Col1
from (
    select 'val1' as Col1
    union
    select 'val2'
    union
    select 'val3'     
) as T;

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有