如果我运行查询(列名之间没有逗号)
SELECT columnA columnB FROM someTable
Postges返回第一列。我预计会有错误.. 这种行为的目的是什么?
答案 0 :(得分:0)
关键字as
对于列别名是可选的,因此columnB
是columnA
的别名。
您的陈述相当于:
SELECT columnA as columnB
FROM someTable
答案 1 :(得分:0)
您可以为选择列表中的列指定列标签。例如:
SELECT columnA my_col FROM someTable;
此处columnA
是表someTable
中的实际列,my_col
是分配给columnA
的标签。
您的查询是:
SELECT columnA columnB FROM someTable;
在这里,虽然您希望PostgreSQL抛出错误,但这是PostgreSQL的有效查询。这是因为PostgreSQL将columnA
视为实际列,将columnB
视为分配给前一列的标签。这就是为什么它只返回结果中的第一列,即columnA
。