**THIS TOPIC APPLIES TO:**SQL Server (starting with 2008)Azure SQL DatabaseAzure SQL Data Warehouse Parallel Data Warehouse

Returns the total length of the elements in a **geometry** instance.

||

|-|

|**Applies to**: SQL Server ( SQL Server 2008 through current version), Azure SQL Database.|

## Syntax

```
.STLength ( )
```

## Return Types

SQL Server return type: **float**

CLR return type: **SqlDouble**

## Remarks

If a **geometry** instance is closed, its length is calculated as the total length around the instance; the length of any polygon is its perimeter and the length of a point is 0. The length of any **geometrycollection** type is the sum of the lengths of its contained **geometry** instances.

STLength() works on both valid and invalid LineStrings. Typically a LineString is invalid due to overlapping segments, which may be caused by anomalies such as inaccurate GPS traces. STLength() does not remove overlapping or invalid segments. It includes overlapping and invalid segments in the length value that it returns. The MakeValid() method can remove overlapping segments from a LineString.

## Examples

The following example creates a `LineString`

instance and uses `STLength()`

to find the length of the instance.

```
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(0 0, 2 2, 1 0)', 0);
SELECT @g.STLength();
```