ERROR: type "sum" does not exist
2024-09-02 04:34:35
开发问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,如果该别名不是保留的关键字。但是由于语法上的歧义,这对于输出列名称是不切实际的。
所以这里真正的问题是单引号的使用。去掉单引号即可。 当然也可以将单引号换成双引号。
最新文章
- 移动硬盘不能识别的常见7种解决方案 ~ By 逆天经验
- 20161023 NOIP 模拟赛 T2 解题报告
- base64和图片的转换
- Webpack配置示例和详细说明
- Spark之Streaming
- mssql server提示无权限
- 微信小程序开发者工具集合包
- windows本地提权对照表(转载)
- win7(iis7)无法加载运行CSS和图片的解决方法
- solr 学习笔记1
- img transform:scale 放大在ios下变模糊
- 2019全国大学生信息安全竞赛初赛pwn前四题writeup—栈部分
- pycahrm 安装Vue项目
- 【转】python 退出程序的方式
- MUI组件四:选择器、滚动条、单选框、区域滚动和轮播组件
- IOC 和DI(转载)
- BZOJ.3693.圆桌会议(Hall定理 线段树)
- CF733F Drivers Dissatisfaction【链剖】【最小生成树应用】
- 使用InstallAnywhere7.1制作Java exe程序安装包
- 安装mysql时包冲突解决方法
热门文章
- ApplicationContext的名称解释
- docker启动报错 docker: Error response from daemon: OCI runtime create failed: container_linux.go:348
- 关于TCP/IP
- 缓冲加载图片的 jQuery 插件 lazyload.js 使用方法详解
- Show which git tag you are on?
- 题解:UVa1025 A Spy in the Metro
- mysql 常用命令 | 表间 弱关联 join
- c#接口interface学习
- 什么是JavaEE,什么是Spring
- HDU 6583 Typewriter(后缀自动机)