Categories:

Geospatial Functions

# ST_LENGTH¶

Returns the geodesic length of the LineString(s) in a GEOGRAPHY object or the Euclidean length of the LineString(s) in a GEOMETRY object.

## Syntax¶

ST_LENGTH( <geography_or_geometry_expression> )


## Arguments¶

geography_or_geometry_expression

The argument must be of type GEOGRAPHY or GEOMETRY.

## Returns¶

Returns a REAL value, which represents the length in meters.

## Usage Notes¶

• If geography_or_geometry_expression is not a LineString, MultiLineString, or GeometryCollection containing linestrings, ST_LENGTH returns 0.

• If geography_or_geometry_expression is a GeometryCollection, ST_LENGTH returns the sum of the lengths of the linestrings in the collection.

• If you want the perimeter length of a polygon, use the ST_PERIMETER function instead.

## Examples¶

### GEOGRAPHY Examples¶

This shows the length in meters of one degree of arc at the equator:

SELECT ST_LENGTH(TO_GEOGRAPHY('LINESTRING(0.0 0.0, 1.0 0.0)'));
+---------------------------------------------------------+
| ST_LENGTH(TO_GEOGRAPHY('LINESTRING(0.0 0.0, 1.0 0.0)')) |
|---------------------------------------------------------|
|                                        111195.101177484 |
+---------------------------------------------------------+


### GEOMETRY Examples¶

The following example demonstrates how to use the ST_LENGTH function.

SELECT ST_LENGTH(g), ST_ASWKT(g)
FROM (SELECT TO_GEOMETRY(column1) AS g
FROM VALUES ('POINT(1 1)'),
('LINESTRING(0 0, 1 1)'),
('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))'));

+--------------+--------------------------------+
| ST_LENGTH(G) | ST_ASWKT(G)                    |
|--------------+--------------------------------|
|  0           | POINT(1 1)                     |
|  1.414213562 | LINESTRING(0 0,1 1)            |
|  0           | POLYGON((0 0,0 1,1 1,1 0,0 0)) |
+--------------+--------------------------------+