错误:用作表达式的子查询返回的多行

时间:2016-03-15 19:55:32

标签: database postgresql postgis plpgsql

我正在开发一个asp.net数据,我将在一列中插入数据。我在postgresql中使用这个代码它说,但它给了我这个错误。你能救我吗?

错误:用作表达式SQL状态的子查询返回的多行:21000

SELECT ST_Line_Interpolate_Point (route.geom,(select (pk_accident)/(pk_fin-pk_debut) from route, accident_ma 
where route.num_route = accident_ma.num_route order by route.num_route))
from route,accident_ma where route.num_route = accident_ma.num_route order by route.num_route;

1 个答案:

答案 0 :(得分:1)

ST_Line_Interpolate_Point 是标量函数,它被设计为两个值的输入集。

选择中查询 “SELECT(pk_accident)/(pk_fin-pk_debut)                                      来自route,accident_ma                                      WHERE route.num_route = accident_ma.num_route                                      ORDER BY route.num_route“

假设每个选定记录返回一个值(此值将由ST_Line_Interpolate_Point函数使用),但是in-select-query返回多个记录。

在Oracle中,您可以通过添加其他过滤器来修改查询

“和rownum = 1” 过滤器,对于没有oracle案例,您可以添加 限制1 过滤器< / p>

选择(pk_accident)/(pk_fin-pk_debut)                                      来自route,accident_ma                                      WHERE route.num_route = accident_ma.num_route                                     限制1

这应解决问题