Определение
ST_Y берет ST_Point как входной параметр и возвращает ее координату y. В SQLite ST_Y также может обновить координату у ST_Point.
Синтаксис
Oracle и PostgreSQL
sde.st_y (point1 sde.st_point)
SQLite
double st_y (point1 geometryblob) geometry st_y (input_shape geometryblob, new_Yvalue double)
Тип возврата
Двойная точность
Функция ST_Y в SQLite также может обновить координату y точки. В этом случае возвращается geometryblob.
Пример:
Таблица y_test создается с двумя столбцами: gid, который уникально определяет каждую строку, и точечным столбцом pt1.
Инструкция INSERT вставляет две строки. Одна из них – это точка без z-координаты или измерения. В другом столбце есть z-координата или измерение.
Запрос SELECT использует функцию ST_Y для получения координаты y каждого точечного объекта.
Oracle
CREATE TABLE y_test (
gid integer unique,
pt1 sde.st_point
);
INSERT INTO Y_TEST VALUES (
1,
sde.st_pointfromtext ('point (10.02 20.02)', 4326)
);
INSERT INTO Y_TEST VALUES (
2,
sde.st_pointfromtext ('point zm(10.1 20.01 5.0 7.0)', 4326)
);
SELECT gid, sde.st_y (pt1) "The Y coordinate"
FROM Y_TEST;
GID The Y coordinate
1 20.02
2 20.01
PostgreSQL
CREATE TABLE y_test (
gid integer unique,
pt1 sde.st_point
);
INSERT INTO y_test VALUES (
1,
sde.st_point ('point (10.02 20.02)', 4326)
);
INSERT INTO y_test VALUES (
2,
sde.st_point ('point zm(10.1 20.01 5.0 7.0)', 4326)
);
SELECT gid, sde.st_y (pt1)
AS "The Y coordinate"
FROM y_test;
gid The Y coordinate
1 20.02
2 20.01
SQLite
CREATE TABLE y_test (gid integer);
SELECT AddGeometryColumn(
NULL,
'y_test',
'pt1',
4326,
'pointzm',
'xyzm',
'null'
);
INSERT INTO y_test VALUES (
1,
st_point ('point (10.02 20.02)', 4326)
);
INSERT INTO y_test VALUES (
2,
st_point ('point zm(10.1 20.01 5.0 7.0)', 4326)
);
SELECT gid, st_y (pt1)
AS "The Y coordinate"
FROM y_test;
gid The Y coordinate
1 20.02
2 20.01
Функция ST_Y также может обновить значение координаты существующей точки. В данном примере функция ST_Y используется для обновления значение координаты y второй точки в y_test.
UPDATE y_test
SET pt1=st_y(
(SELECT pt1 FROM y_test WHERE gid=2),
20.1
)
WHERE gid=2;