SQL查询里面的一个函数

时间:2013-04-06 21:12:21

标签: sql database postgresql geospatial

我在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"

3 个答案:

答案 0 :(得分:2)

试试这个:

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

答案 1 :(得分:0)

Postgis的函数ST_MakePointST_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)