【问题标题】:How to add column alias to subquery in select statement?如何在选择语句中为子查询添加列别名?
【发布时间】:2013-02-14 13:27:55
【问题描述】:

我正在尝试运行我在 select 语句中使用子查询的查询。
这有效:

select   
(select sysdate from dual),   
(select 'municipality' from dual),  
(select count(*) from municipality)  
from dual;  

但是生成的列名很难看,因此我想添加列别名。

我正在尝试运行以下查询:

select   
(select sysdate from dual) as sysdate,   
(select 'municipality' from dual) as tablename,  
(select count(*) from municipality) as count  
from dual;

此操作失败并出现 ORA 00923: From keyword not found where expected 错误。 不知何故,我错过了一些东西。

有什么建议吗?

谢谢。

【问题讨论】:

  • 你的起始代码只是一个例子,对吧?如果这是真的,请改用select sysdate, 'municipality' as tableName, count(*) as COUNT from municipality。示例sqlfiddle.com/#!4/cb881/4

标签: sql oracle select alias


【解决方案1】:

尝试用双引号括起来,

select
   (select sysdate from dual) as "sysdate",
   (select 'municipality' from dual) as "tablename",
   (select count(*) from municipality) as "count"
from dual;

SysDate 是保留关键字。虽然,COUNT 是一个聚合函数,但它是允许使用的。

【讨论】:

  • 生活可以如此简单。当然,我必须使用引号。感谢您的快速回答
【解决方案2】:

您在代码中遇到的唯一错误是使用关键字 sysdate 和 count 作为别名,这是不行的……使用 AS 也是可选的。这按预期工作:

select   
 (select sysdate from dual)  s_date,            -- NOT sysdate
 (select 'municipality' from dual)  tablename,  
 (select count(*) from dual) as cnt             -- NOT count
 from dual;

使用计数是可以的,但在现实世界中这是不可取的,专业人士不会使用关键字。

【讨论】:

    猜你喜欢
    • 2012-06-21
    • 2012-10-09
    • 2022-01-23
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    相关资源
    最近更新 更多