postgresql - 尝试创建物化视图时在“Z”处或附近出现语法错误
问题描述
我有以下查询:
CREATE MATERIALIZED VIEW tk AS
SELECT *
FROM base
WHERE ST_Contains(geo, POLYGON Z ((...some values ...)))
但我收到错误:
syntax error at or near "Z"
该geo
字段是geometry
字段类型
问题是什么以及如何解决?
解决方案
您的查询缺少单引号:
例子:
CREATE TABLE base (geo geometry);
INSERT INTO base VALUES ('POLYGONZ((1 0 0, 0 5 0, 5 5 0, 5 0 0, 1 0 0))');
CREATE MATERIALIZED VIEW tk AS
SELECT * FROM base
WHERE
ST_Contains (geo,'POLYGONZ((2.51 3.33 1,2.07 2.24 1,3.28 2.26 1,2.51 3.33 1))');
SELECT ST_AsText(geo) FROM tk;
st_astext
---------------------------------------------
POLYGON Z ((1 0 0,0 5 0,5 5 0,5 0 0,1 0 0))
(1 Zeile)
注意: 的文档ST_Contains
没有提到任何关于Z
在函数中计算维度的内容。因此我们可以假设它被简单地忽略并且查询只是考虑X
和Y
考虑。
推荐阅读
- java - Comparator 是一个类还是一个接口,如果是后者,它是如何被实例化的?
- excel - Selenium Basic VBA - Base64 的屏幕截图
- bash - 超过 n 天的 Tar 文件
- java - 8u201:方法引用抛出 IAE,而 lambda 传递包私有参数
- python - 过滤字段域 one2many to many2one
- regex - 只替换1个前导零,如果超过1次则丢弃它
- python - 重命名 DRF 序列化器字段
- java - AndroidStudio - 将用户信息保存在 CSV 文件中并读取
- google-chrome - Pixel Slate 上的无效清单(Chrome 操作系统)
- azure-cognitive-search - 如何过滤自动完成