在 SELECT 语句中更改 Oracle 中的列名

Posted

技术标签:

【中文标题】在 SELECT 语句中更改 Oracle 中的列名【英文标题】:Change column name in Oracle in SELECT statement 【发布时间】:2013-07-30 10:15:38 【问题描述】:

在 MSSQL 中,我可以选择一列并更改列标题:

SELECT mycolumn as 'MyNewColumnName' from MyTable

这在 Oracle 中不起作用。如何在 Oracle 中执行相同的操作?

【问题讨论】:

【参考方案1】:

    去掉单引号

    SELECT mycolumn as MyNewColumnName 
      from MyTable
    

    用双引号将别名括起来

    SELECT mycolumn as "MyNewColumnName" 
      from MyTable
    

【讨论】:

如果你在它周围加上双引号,你将命名为 CaseSensitive,这意味着无论你在哪里使用它,你都必须将它括在“双引号”中,这会很快变老。 而且,您也不应该在 MS SQL 中使用单引号。使用双引号或方括号。保存字符串常量的单引号。 使用 .Net Oracle 客户端,您最终会得到一个 DataTable,其中的列在情况 (1) 中名为 MYNEWCOLUMNAME,在情况 (2) 中名为 MyNewColumnName。所以这不仅仅是鲍勃提到的问题。这一点尤其重要,如果您在完成时将原始结果移交给 JSON 格式化程序,例如在 WebAPI 中,因为 JS 对此的处理方式不同。 在 Toad for Oracle 中,SELECT mycolumn "MyNewColumnName" from MyTableSELECT mycolumn MyNewColumnName from MyTable 也适用于我。【参考方案2】:

在 Oracle 中,您可以只在列名后提供一个空格,并提供不带引号的别名

 SELECT mycolumn MyNewColumnName from MyTable

【讨论】:

@Moudiz - 请解释为什么你觉得这不是好习惯。 @Moudiz :-我 100% 确定上述方法会起作用...不是强制使用 AS 关键字。这个别名也可以在前面的代码中使用。所以我认为这不是一个好的做法。 @Harshit 为什么忽略“AS”(如果存在)?有人告诉我(我在某处读过)需要别名 AS,因此查询会更清晰是强制性示例:create table ex1 AS select * from msgs 。如果您在此处删除 AS 将导致语法错误,因此如果您练习在没有“AS”的情况下编写查询,它可能 - 我是说它可能 - 您错过了在某处包含 AS您应该在哪里编写脚本 @Moudiz 明白了。只是想补充一点,如您所引用的,某些地方必须使用 As,而且还有更多。如果你不在那里使用它,会出现语法错误。但是在上面的答案中使用 AS 毫无价值,因为我没有看到任何可用性和良好的代码实践。 PS:- 没有冒犯:) @Harshit 这是习惯问题,有很多地方需要使用别名,在连接列、程序或多种方式中。我正在考虑发布一个问题如果“AS”别名是一个好习惯,我们会提供我们提到的细节,我们会有不同的意见..你怎么看?毕竟我们来这里是为了分享我们的知识

以上是关于在 SELECT 语句中更改 Oracle 中的列名的主要内容,如果未能解决你的问题,请参考以下文章

在 Oracle 的 select 语句中使用对象类型

怎么显示Oracle数据库表中的列

如何在 Oracle 循环中的 select 语句中执行 alter 命令?

oracle学习 第一章 简单的查询语句 ——03

HiveQL SELECT语句查询

在 Oracle 中仅选择没有 Null 值的列