Postgres声明在select或其附近执行子查询错误时出现错误

时间:2019-04-25 16:02:50

标签: sql postgresql

我知道这个问题对大多数人来说都很容易。但是我真的希望这会起作用。 为什么此查询不起作用?

select name, price,  select num from ( select 1 as num) as value 
from products;

我有这个:

选择时或选择附近出现错误

3 个答案:

答案 0 :(得分:1)

您可以使用单个SELECT语句来完成此操作:

select name, price, 1 as value 
from products;

单个外部SELECT语句应仅包含列/表达式,如果它具有其他SELECT语句,则应为subquery形式。

类似的东西:

select t.col1, t.col2 t.col3,
       (select t1.col from table t1 where . . . ) as col_name
from table t;

答案 1 :(得分:0)

答案取决于您要确切执行的操作。

请记住fromValue是正确的sql查询,该查询从表中返回“第一列”

它说明了为什么查询中存在语法错误。 select 1 from table中缺少from table

所以让我们确认一下你到底想要什么

答案 2 :(得分:0)

为什么会失败?

select name, price,  select num from ( select 1 as num) as value 
from products;

select是一个SQL关键字,指示新查询或子查询。与子查询一起使用时,必须在其自己的括号之前。因此,您会收到语法错误。

如果添加括号:

select name, price,  (select num from ( select 1 as num)) as value 
from products;

由于嵌套子查询缺少表别名,因此会出现不同错误。

最后,您可以将其修复为可能的目标:

选择名称,价格,        (从(选择1作为num)x中选择num)作为值 来自产品p;