1

所以,我正在做作业,我无法弄清楚这一步。

  1. 右键单击刚刚创建的表,单击Design,然后在其中添加一个新列,称为GEOG,数据类型为geography。保存对表的更改。
  2. 使用转换为/数据的WKT 列填充GEOG 列。LinePolygon
  3. 对于counties 表建立一个新的UPDATE查询,将WKT转换为Polygon并保存到GEOG 列中。

表 1 是brazosStreet,表 2 是

表 1 WKT 是LINESTRING,表 2 是POLYGON

我被困在 Table2Polygon步骤上。

验证数据并执行交集:

Geog.MakeValid();
Geog.STIntersects(Geog1) = 1;

验证:

Update [dbo].[Counties]
set Geog = Geog.MakeValid()

执行选择:

SELECT *
FROM [dbo].[counties]
WHERE Geog.STIntersects(geography::STLineFromText(‘LINESTRING(-98.144094 31.915186, -93.914357 30.977930)’, 4326);

无论我为“执行选择”部分输入什么内容,都会出现错误。我试过STPolyFromText了,我尝试删除并重新开始超过 3 次。

我唯一能想到的是我跳过这一部分,因为我无法让它工作:

验证数据并执行交集

Geog.MakeValid();
Geog.STIntersects(Geog1) = 1;

我阅读的方式是对即将发生的事情的概述。因为它看起来像是Geog.MakeValid();验证阶段的一部分,并且Geog.STIntersects(Geog1) = 1;看起来像是执行选择阶段的一部分。

为什么我的语法不能正常工作?我不确定这到底是什么 SQL 语言。如果我需要更多地解释这种情况,请告诉我。我在这里先向您的帮助表示感谢!

UPDATE [dbo].[brazosStreets] 
SET
[Geog] = geography::STLineFromText([WKT],4326);
UPDATE [dbo].[counties]
SET Geog = Geog.MakeValid;
select *
from [dbo].[counties] c
where c.STIntersect(geography::STLineFromText(‘LINESTRING(-98.144097 
31.915186, -93.914357 30.977930)’,4326))=1;

当我尝试运行此程序时出现错误 102。涉及非布尔运算符的“单引号”放置错误

4

0 回答 0