0

我正在使用SquirrelSQL在 Netezza 数据库上编写和执行 SQL 查询。使用 Netezza 的空间功能(与 PostGIS 的基本相同),我执行了一个查询并返回了一个包含几何图形的结果。这是查询,供参考:

SELECT t.SHAPE
FROM (SELECT * FROM OS_AB_PLUS..E12_ADDRESSBASE WHERE POSTCODE = 'RH1 6NE' 
AND PAO_START_NUMBER = '14') as a, OS_TOPO..TOPOGRAPHICAREA as t
WHERE inza..ST_Within(a.shape, t.shape) = TRUE

我的问题是应该包含表示为众所周知的文本(WKT) 的多边形坐标的几何字段看起来像这样:

g¹ AË Affff¬0AÍÌÌÌî0AÒ 3333Ê AÍÌÌÌî0A» Aë0Afffæ» AffffÒ0A¹ AÒ0A333³¹ A3333¿0AŒ AffffÀ0AÍÌÌLŒ Affff¬0AË A¯0AëQ8Ê A3333í0A3333Ê AÍÌÌÌî0A

我似乎无法在 SquirrelSQL 中找到任何地方来指定 VARCHAR 列的编码,而且我已经看到在 Aginity(另一个 SQL 客户端)中返回的列没有编码问题。任何有关如何进行的建议将不胜感激。

4

1 回答 1

3

原来我的问题根本与编码无关。仅当在 select 语句中使用ST_AsText时,才会返回类似 PostGIS 的数据库中几何图形的人类可读版本。所以我的 SQL 查询变成:

SELECT inza..ST_AsText(t.SHAPE)
FROM (SELECT * FROM OS_AB_PLUS..E12_ADDRESSBASE WHERE POSTCODE = 'RH1 6NE' 
AND PAO_START_NUMBER = '14') as a, OS_TOPO..TOPOGRAPHICAREA as t
WHERE inza..ST_Within(a.shape, t.shape) = TRUE

哪个返回。如预期:

POLYGON ((526696.15 148931.9, 526703.94 148932.34, 526703.8 148935.2, 526705.5 148935.3, 526705.4 148937.8, 526695.9 148937.35, 526696.15 148931.9))
于 2013-03-12T09:58:58.543 回答