从聚合函数默认postgresql更改列名
Change column name from aggregate function default postgresql
我像这样创建了一个(大)table:
create table names_and_pics as (
select e.emp_name, e.dept, max(p.prof_pic)
from e.employees
left join profiles p
on e.emp_id = p.emp_id )
select * from names_and_pics;
emp_name | dept | max(p.prof_pic)
Dan | IT | 1234.img
Phil | HR | 3344.img
...
因为我忘记给第 3 个字段命名,我现在需要将它重命名为 "img_link" 我一直在尝试的语法是
alter table names_and_pics rename max(p.prof_pic) to img_link;
出现以下错误:
Syntax Error at or near "("
有什么解决办法吗?
您需要将列名放在双引号中,因为它包含无效字符:
alter table names_and_pics rename "max(p.prof_pic)" to img_link;
手册中有关引用标识符的更多信息
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
顺便说一句:create table ... as select
语句中 select 周围的括号是无用的噪音
我像这样创建了一个(大)table:
create table names_and_pics as (
select e.emp_name, e.dept, max(p.prof_pic)
from e.employees
left join profiles p
on e.emp_id = p.emp_id )
select * from names_and_pics;
emp_name | dept | max(p.prof_pic)
Dan | IT | 1234.img
Phil | HR | 3344.img
...
因为我忘记给第 3 个字段命名,我现在需要将它重命名为 "img_link" 我一直在尝试的语法是
alter table names_and_pics rename max(p.prof_pic) to img_link;
出现以下错误:
Syntax Error at or near "("
有什么解决办法吗?
您需要将列名放在双引号中,因为它包含无效字符:
alter table names_and_pics rename "max(p.prof_pic)" to img_link;
手册中有关引用标识符的更多信息
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
顺便说一句:create table ... as select
语句中 select 周围的括号是无用的噪音