2014-12-02 38 views
0

如果我运行一个查询(没有列名之间用逗号)之间的逗号,Postgres的查询没有列名

SELECT columnA columnB FROM someTable 

Postges返回的第一列。我期望有一个错误.. 这种行为的目的是什么?

回答

0

对于列别名,关键字as是可选的,因此columnBcolumnA的别名。

你的语句等价于:

SELECT columnA as columnB 
FROM someTable 
0

您可以在选择列表中指定的列标签的列。例如:

SELECT columnA my_col FROM someTable; 

这里columnA是表someTablemy_col实际列被分配到columnA的标签。

您所查询的是:

SELECT columnA columnB FROM someTable; 

在这里,虽然你预期的PostgreSQL抛出一个错误,但是这是一个针对PostgreSQL有效的查询。这是因为PostgreSQL将columnA视为实际列,将columnB视为分配给前一列的标签。这就是为什么它只返回结果中的第一列,即columnA