我在PostGis上使用PostgreSQL。我正在执行这样的查询:
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"
答案 0 :(得分:2)
试试这个:
select st_geomfromtext('point(' || x || ' 232)', 432) from data_name where id=1
答案 1 :(得分:0)
Postgis的函数ST_MakePoint
比ST_GeomFromText
快。
select ST_SetSRID(ST_MakePoint(x),432) from data_name where id=1;
答案 2 :(得分:0)
虽然@muratgu answer 通常是走的路,但有一个小注:
如果找不到id = 1
的行,则子查询会为您提供不同的结果。然后你得不到任何回报(没有行),而不是:
select st_geomfromtext(NULL, 432)
如果您需要直接替换:
select st_geomfromtext('point('
|| (select x from data_name where id=1)
|| ' 232)' , 432)