abclife

ERROR: type "sum" does not exist

2019-11-15 14:09  abce  阅读(572)  评论(0编辑  收藏  举报

开发问pg中执行一个简单的语句,多次报错:

> ERROR:  type "sum" does not exist
LINE 1: SELECT SUM
               ^

  

看看具体的语句,其实是个很简单的语句,怎么会报类型sum不存在呢?

SELECT SUM
	(es.money_stock ) \'sum_money\', 
	es.material_no,
	es.price 
FROM
	es 
GROUP BY
	es.material_no,
	es.price;

  

其实这是的问题在于select语句中列的别名的写法规范问题。以下是pg文档中的描述:

 

在SQL标准中,只要新列名是有效的列名(即与任何保留关键字不同),就可以在输出列名之前省略可选关键字AS。
PostgreSQL的限制更严格:如果新的列名完全匹配任何关键字,则保留AS,无论是否是保留字。
推荐的做法是使用AS或双引号输出列名,以防止与将来添加关键字的任何可能的冲突。

在FROM项中,标准sql和PostgreSQL都允许省略AS之前的AS,如果该别名不是保留的关键字。但是由于语法上的歧义,这对于输出列名称是不切实际的。

 

所以这里真正的问题是单引号的使用。去掉单引号即可。 当然也可以将单引号换成双引号。

 

分类:

技术点:

相关文章:

  • 2021-07-14
  • 2021-12-13
  • 2022-12-23
  • 2021-04-11
  • 2021-08-26
  • 2022-02-16
  • 2021-08-01
  • 2021-06-03
猜你喜欢
  • 2022-01-07
  • 2021-07-02
  • 2021-07-16
  • 2021-12-31
  • 2021-08-11
  • 2021-09-09
  • 2021-04-29
相关资源
相似解决方案