PostgreSQL将查询包装为内联视图提示SELECT附近语法错误如何解决
报错原因
PostgreSQL 语法强制要求:所有出现在 FROM 子句中的派生表(即内联视图、嵌套子查询的结果集)必须显式指定别名,即使后续查询逻辑不会引用该别名也不可省略。你提交的SQL语句未给子查询生成的派生表设置别名,因此触发语法校验错误。
报错语句说明
你执行的原始报错语句为:
SELECT * FROM (SELECT prod_id, prod_price FROM Products)
其中内层子查询 SELECT prod_id, prod_price FROM Products 本身语法合法,因此单独执行可以正常返回结果。
解决方法
只需在子查询的右括号后添加任意合法的表别名即可,AS 关键字可省略,以下两种写法均合法:
-- 带AS关键字的写法 SELECT * FROM (SELECT prod_id, prod_price FROM Products) AS product_sub;
-- 省略AS关键字的写法 SELECT * FROM (SELECT prod_id, prod_price FROM Products) product_sub;
别名可替换为任意符合PostgreSQL命名规则的字符串,无需和原表有关联。
内容的提问来源于stack exchange,提问作者user10569111
相关产品推荐
相关产品推荐

