0

在 SQL Server 2008 R2 中,我创建了一些多边形。我还选择了哪个多边形与另一个多边形重叠现在我想知道重叠面积或百分比。

对于我正在尝试遵循 SQL 的区域

SELECT location.STArea()
FROM
  ( SELECT location.STIntersection(
           (SELECT LOCATION
            FROM TEST.dbo.cn_overlap_trn
            WHERE plot_no = '657065700016801' ) )
   FROM TEST.dbo.cn_overlap_trn
   WHERE plot_no ='657065700016701') ;

在上面的 SQL

SELECT location.STIntersection(
       (SELECT LOCATION
        FROM TEST.dbo.cn_overlap_trn
        WHERE plot_no = '657065700016801' ) )
FROM TEST.dbo.cn_overlap_trn
WHERE plot_no ='657065700016701';

运行良好,但是当我添加STArea()功能时会导致错误

消息 102,级别 15,状态 1,第 11 行
';' 附近的语法不正确。

4

1 回答 1

0

您需要为您的子查询指定别名A,也需要为您的函数指定一个别名,特别是在您的内部查询中,例如:

Select location.STArea() as Area from
(
    select 
    location.STIntersection(
        ( 
        select location from TEST.dbo.cn_overlap_trn where plot_no =  '657065700016801'
        )
                            ) as Intersection
    from TEST.dbo.cn_overlap_trn 
    where plot_no ='657065700016701'
) A ;
于 2013-11-07T06:13:47.280 回答