所以,我正在做作业,我无法弄清楚这一步。
- 右键单击刚刚创建的表,单击Design,然后在其中添加一个新列,称为GEOG,数据类型为geography。保存对表的更改。
- 使用转换为/数据的WKT 列填充GEOG 列。
Line
Polygon
- 对于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。涉及非布尔运算符的“单引号”放置错误