如何在select语句中重命名表中的单个列?

41

我有两个表格,其中一个列名相同但数据不同。我想把这两个表合并起来,但同时访问这两个列(row["price"], row["other_price"]):在select语句中如何为它们命名别名?(我不想在数据库中重命名它们)

8个回答

63
SELECT table1.price, table2.price AS other_price ...

1
两个表中有25个相同的列怎么办?我需要为这25个列编写AS语句吗? - hpaknia
4
简短回答是:是的。另一方面,如果你没有足够的时间写出25个AS语句,你可以从SysColumns中获取列名,并编写一些SQL来创建SQL。最简单的方法可能只需要5分钟... - MrTelly
我的 MySQL 方言不允许我使用字符串作为列名。 SELECT table1.price,table2.price AS other_price 对我有用。 - Tessa I
在我的情况下,在 AS 后面使用单引号不起作用,需要去掉引号。 - Adrián Jaramillo
如果表有很多列,但只有一列有冲突的名称,并且您想选择所有列(例如使用JOIN的视图):是否有一种方法可以避免列出所有列名(即我可以以某种方式使用*与AS结合使用吗?)? - U. Windl
如果您正在使用SSMS,您可以在对象资源管理器中选择列并将其拖动到查询窗格中,然后您会获得所有列的完整列表,您可以编辑这些列。 - MrTelly

26
select t1.Column as Price, t2.Column as Other_Price
from table1 as t1 INNER JOIN table2 as t2 
ON t1.Key = t2.Key 

像这样吗?


7
使用AS关键字。
select a.Price as PriceOne, b.price as PriceTwo 
from tablea a, tableb b

5

如果你和我一样,正在为一个通过 COALESCE / array_to_json / ARRAY_AGG / row_to_json (PostgreSQL) 处理过后的列进行操作,并且想要保留列名中的大写字母,请在列名两侧加上双引号,例如:

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

没有使用引号时(并且在使用这些函数时),我使用驼峰命名法的列名会失去大写字母。

1
您可以省略 AS 关键字。
SELECT row1 价格, row2 '其他价格' FROM exampleDB.table1;
在这种选项中,可读性会有所降低,但您可以获得所需的结果。

1

如果您正在使用SQL Server,在代码中的查询中使用括号或单引号来表示别名。


1

不需要使用 AS,只需使用:

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

1

你可以选择另一个选项:

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

参考:

如果您对使用“=”与“as”别名列的性能或其他方面感到好奇,请参阅别名列的引用


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接