zoukankan      html  css  js  c++  java
  • ERROR: type "sum" does not exist

    开发问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,如果该别名不是保留的关键字。但是由于语法上的歧义,这对于输出列名称是不切实际的。

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

  • 相关阅读:
    JavaScript日常学习6
    JavaScript日常学习5
    JavaScript日常学习4
    JavaScript日常学习3
    JavaScript日常学习2
    JavaScript日常学习1
    iOS开发之 Lottie -- 炫酷的动效
    Adobe After Effect CC2017 for Mac
    随机四则运算的程序
    关于四则运算进一步优化的构思
  • 原文地址:https://www.cnblogs.com/abclife/p/11866037.html
Copyright © 2011-2022 走看看