Skip to main content
Documents
Basic SyntaxMath FunctionsDate FunctionsJSON FunctionsDatabasesTables & Schema ManagementString FunctionsTriggersIndexes

PostgreSQL SUBSTRING

The PostgreSQL SUBSTRING function is used to extract a portion of a string based on specified indices. This function is essential for handling string manipulation and data parsing tasks within a database.

Usage

The SUBSTRING function is used when you need to extract parts of a string, such as retrieving a portion of a text field or parsing specific data formats. It is often used in data transformation and preparation tasks.

SUBSTRING(string FROM start [FOR length])

In this syntax, string is the source string, start indicates the starting position, and length is the number of characters to extract. If length is omitted, the substring extends to the end of the string.

Examples

1. Basic Substring Extraction

SELECT SUBSTRING('PostgreSQL Tutorial' FROM 1 FOR 10);

This example extracts the first 10 characters from the string, resulting in the output: 'PostgreSQL'.

2. Substring Without Specified Length

SELECT SUBSTRING('Database Management' FROM 10);

Here, the substring starts from the 10th character and continues to the end, resulting in: 'Management'.

3. Substring with Pattern Matching

SELECT SUBSTRING('abc123def456' FROM '[0-9]+');

This example uses a regular expression to extract the first sequence of digits from the string, resulting in: '123'.

4. Edge Case: Start Exceeds String Length

SELECT SUBSTRING('Short' FROM 10 FOR 5);

When the start position exceeds the string length, the result is an empty string: ''.

5. Edge Case: Negative Indices

SELECT SUBSTRING('Negative Test' FROM -5);

Using negative indices will result in an error, as start must be a positive integer.

Tips and Best Practices

  • Be mindful of indices. PostgreSQL uses 1-based indexing, meaning counting starts from 1, not 0.
  • Utilize regular expressions. Use regex patterns for more complex string extraction tasks to match specific patterns.
  • Combine with other functions. Use SUBSTRING alongside other string functions like TRIM or LENGTH for more robust string manipulation.
  • Avoid unnecessary extraction. Ensure the start and length parameters are accurate to prevent errors or unexpected results.
  • Performance considerations. Be cautious when using SUBSTRING in queries processing large datasets, as it may impact performance.
  • Related Functions. Consider using LEFT or RIGHT when you need to extract a fixed number of characters from the start or end of a string, respectively.