如何在选择时重命名表中的单个列?

Posted

技术标签:

【中文标题】如何在选择时重命名表中的单个列?【英文标题】:How can I rename a single column in a table at select? 【发布时间】:2009-03-05 10:24:42 【问题描述】:

我有两张表,列名相同,但数据不同。我想加入表格,但访问两列(row["price"], row["other_price"]):如何在 select 语句中重命名/别名其中之一? (我不想在数据库中重命名它们)

【问题讨论】:

【参考方案1】:

选择 table1.price,table2.price 作为 other_price .....

【讨论】:

两个表中有 25 个相同的列怎么样?我应该为所有 25 列编写 AS 语句吗? 简短回答是。 OTOH,如果您没有足够的时间编写 25 个 AS 语句,您可以从 SysColumns 中提取列名并编写一些 SQL 来创建 SQL。简单的方法可能是 5 分钟 ...【参考方案2】:
select t1.Column as Price, t2.Column as Other_Price
from table1 as t1 INNER JOIN table2 as t2 
ON t1.Key = t2.Key 

喜欢这个?

【讨论】:

【参考方案3】:

我们使用 AS 关键字

select a.Price as PriceOne, b.price as PriceTwo 
from tablea a, tableb b

【讨论】:

【参考方案4】:

如果像我一样,您正在为一个列执行此操作,该列然后通过 COALESCE / array_to_json / ARRAY_AGG / row_to_json (PostgreSQL) 并希望在列名中保留大写字母,请在列名中加双引号,如下所示:

SELECT a.price AS "myFirstPrice", b.price AS "mySecondPrice"

没有引号(以及在使用这些函数时),我在 camelCase 中的列名将丢失大写字母。

【讨论】:

【参考方案5】:

如果您使用的是 sql server,请在代码中的查询中使用括号或单引号将别名括起来。

【讨论】:

【参考方案6】:

您也可以省略 AS 关键字。 SELECT row1 Price, row2 'Other Price' FROM exampleDB.table1; 在这个选项中,可读性有点下降,但你得到了想要的结果。

【讨论】:

【参考方案7】:

不用AS,直接用:

SELECT table1.price Table1 Price, table2.price Table2 Price, .....

【讨论】:

【参考方案8】:

您可以选择的另一个选项:

select price = table1.price , other_price = table2.price from .....

参考:

如果您对aliasing a column using “=” versus “as” 的性能或其他方面感到好奇。

【讨论】:

以上是关于如何在选择时重命名表中的单个列?的主要内容,如果未能解决你的问题,请参考以下文章

[重命名应用程序中的树节点时重命名文件夹名称

如何在将通用工件上传到jenkins管道中的JFrog Artifactory时重命名现有文件夹

平滑运算符:在写入文件时重命名文件

是否有任何已发布的编码风格指南用于重命名 SQL 视图中的列?

在运行时重命名选项卡

在 Oozie 或 pig 运行时重命名文件夹