2015-11-25 2 views
1

Teradata ЗапросКак использовать функцию geography.ST_GeometryType() в базе данных H2?

select F.farm_id, F.name, CASE WHEN geography.ST_GeometryType() = 'ST_POINT' THEN geography.ST_X() ELSE geography.ST_Centroid().ST_X() END as LNG, CASE WHEN geography.ST_GeometryType() = 'ST_POINT' THEN geography.ST_Y() ELSE geography.ST_Centroid().ST_Y() END as LAT from V_farm F, V_farm_workforce FW where F.farm_id=FW.farm_id and FW.account_id='bf064695-b9e3-46a2-a665-0bb794073ae3' and geography is not null 

Во время работы над запросом в Teradata становится ниже réponse

FarmId           Name     LNG      LAT 
----------------------------------------------------------------------------------------------------------- 
ea66e27f-eba4-4750-bd85-2a1e96941b10    Farm099    -88.9495943    33.5847365 
2be7e35e-74a7-49eb-9e9d-5b65dbbf7c5e    VFarmJuly23   -106.6409198    31.8018379 
56982275-bcad-40f7-83db-5dbfd9f9c82c    Farm112    -88.95096260000003  33.601958 

же запрос, если я бегу в H2 становится ниже ошибки

Function "ST_GEOMETRYTYPE" not found; SQL statement: 

Можете ли вы предложить, как в базе данных H2.

ответ

0

База данных H2 может хранить и запрашивать тип геометрии.

Пространственные функции в базе данных H2 доступны в библиотеке H2GIS. Эта библиотека представляет собой пространственное расширение базы данных H2. Он обеспечивает простую функцию OGC для стандартов SQL.

Тот же результат должен быть в этом запросе

select F.farm_id, F.name, ST_X(ST_CENTROID(THE_GEOM)) as LNG, 
ST_Y(ST_CENTROID(THE_GEOM)) as LAT 
from V_farm F, V_farm_workforce FW 
where F.farm_id=FW.farm_id 
    and FW.account_id='bf064695-b9e3-46a2-a665-0bb794073ae3' 
    and the_geom is not null 

ST_CENTROID точки возврата самой точки.

+0

Получение этой ошибки Функция «ST_X» не найдена; SQL statement –

+0

Вы отслеживаете инструкцию? http://www.h2gis.org/docs/dev/quickstart/ –

Смежные вопросы