【问题标题】:Syntax error while using centroid function within the RotateCoords function in Spatialite Query在 Spatialite Query 的 RotateCoords 函数中使用质心函数时出现语法错误
【发布时间】:2015-05-15 07:11:31
【问题描述】:
CREATE TABLE rotated_bus AS SELECT AO_id,
RotateCoords(ST_Centroid(Geometry) FROM Substation, 45.00) AS Geometry FROM Busbar;

我正在尝试通过在 RotateCoords 函数内传递多边形几何体(变电站)的质心来旋转线几何体(母线)。运行上述查询后,我收到一个错误“near FROM syntax error”。我的查询有什么问题?

【问题讨论】:

  • Substation 是表名还是列名?如果是表,和Busbar有什么关系?
  • Substation 是一个表,并且 substations "Substn_ID" = Busbars "Ao_ID"

标签: sql sqlite spatialite


【解决方案1】:

你可以加入这两个表:

CREATE TABLE rotated_bus AS
SELECT Busbar.AO_id,
       RotateCoords(ST_Centroid(Substation.Geometry), 45) AS Geometry
FROM Busbar
JOIN Substation ON Busbar.AO_id = Substation.Substn_ID

或者,使用correlated subquery(子查询必须是一对额外括号内的完整查询):

CREATE TABLE rotated_bus AS
SELECT AO_id,
       (SELECT RotateCoords(ST_Centroid(Geometry), 45)
        FROM Substation
        WHERE Substn_ID = Busbar.AO_id
       ) AS Geometry
FROM Busbar

【讨论】:

猜你喜欢
  • 2015-08-22
  • 1970-01-01
  • 1970-01-01
  • 2020-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多