Definición
ST_X toma un ST_Point como parámetro de entrada y devuelve su coordenada x. En SQLite, ST_X puede actualizar también la coordenada x de un ST_Point.
Sintaxis
Oracle y PostgreSQL
sde.st_x (point1 sde.st_point)
SQLite
st_x (point1 geometryblob) st_x (input_point geometryblob, new_Xvalue double)
Tipo de devolución
Precisión doble
La función ST_X se puede usar también con SQLite para actualizar la coordenada x de un punto. En ese caso, se devuelve un geometryblob.
Ejemplos
Se crea la tabla x_test con dos columnas: la columna gid, que identifica de forma única cada fila, y la columna de punto pt1.
Las declaraciones INSERT insertan dos filas. Uno es un punto sin una coordenada z o medida. La otra columna tiene tanto una coordenada z y medida.
La consulta SELECT usa la función ST_X para obtener la coordenada x de cada entidad de punto.
Oracle
CREATE TABLE x_test (
gid integer unique,
pt1 sde.st_point
);
INSERT INTO X_TEST VALUES (
1,
sde.st_pointfromtext ('point (10.02 20.01)', 4326)
);
INSERT INTO X_TEST VALUES (
2,
sde.st_pointfromtext ('point zm(10.1 20.01 5 7)', 4326)
);
SELECT gid, sde.st_x (pt1) "The X coordinate"
FROM X_TEST;
GID The X coordinate
1 10.02
2 10.10
PostgreSQL
CREATE TABLE x_test (
gid integer unique,
pt1 sde.st_point
);
INSERT INTO x_test VALUES (
1,
sde.st_point ('point (10.02 20.01)', 4326)
);
INSERT INTO x_test VALUES (
2,
sde.st_point ('point zm(10.1 20.01 5 7)', 4326)
);
SELECT gid, sde.st_x (pt1)
AS "The X coordinate"
FROM x_test;
gid The X coordinate
1 10.02
2 10.10
SQLite
CREATE TABLE x_test (gid integer);
SELECT AddGeometryColumn(
NULL,
'x_test',
'pt1',
4326,
'pointzm',
'xyzm',
'null'
);
INSERT INTO x_test VALUES (
1,
st_point ('point (10.02 20.01)', 4326)
);
INSERT INTO x_test VALUES (
2,
st_point ('point zm(10.1 20.01 5 7)', 4326)
);
SELECT gid, st_x (pt1)
AS "The X coordinate"
FROM x_test;
gid The X coordinate
1 10.02
2 10.10
La función ST_X se puede usar también para actualizar el valor de coordenadas de un punto existente. En este ejemplo, se usa ST_X para actualizar el valor de la coordenada x del primer punto de x_test.
UPDATE x_test
SET pt1=st_x(
(SELECT pt1 FROM x_test WHERE gid=1),
10.04
)
WHERE gid=1;