6

我正在将 PostgreSQL 与 PostGis 一起使用。我正在执行这样的查询:

select st_geomfromtext('point(22 232)',432)

它工作正常。但现在我想通过查询获取一个值。例如:

select st_geomfromtext('point((select x from data_name where id=1) 232)' , 432)

data_name是我正在使用的一些表并x存储了一些值。现在查询里面被视为一个字符串,不返回任何值。
请帮忙。

ERROR: syntax error at or near "select"
4

3 回答 3

2

尝试这个:

select st_geomfromtext('point(' || x || ' 232)', 432) from data_name where id=1
于 2013-04-06T21:36:59.163 回答
0

Postgis 有一个ST_MakePointST_GeomFromText.

select ST_SetSRID(ST_MakePoint(x),432) from data_name where id=1;
于 2013-04-07T09:49:15.570 回答
0

虽然@muratgu 答案通常是要走的路,但有一个小提示:当没有找到任何行时,
子查询会为您提供不同的结果id = 1。然后你什么也得不到(没有行),而不是:

select st_geomfromtext(NULL, 432)

如果您需要直接更换:

select st_geomfromtext('point('
                       || (select x from data_name where id=1)
                       || ' 232)' , 432)
于 2013-04-07T16:50:40.970 回答