Summary: in this tutorial, you’ll learn how to use the SQL POSITION function to find the location of the first occurrence of a substring within a string.
Introduction to the SQL POSITION function #
In SQL, the POSITION function returns an integer that represents the location of the first occurrence of a substring within a string.
Here’s the syntax of the POSITION function:
POSITION(substring IN string)Code language: SQL (Structured Query Language) (sql)The POSITION accepts two parameters:
substring: The sequence of characters you want to find.string: The string where you want to search for the substring.
The POSITION function returns an integer representing the location of the first occurrence of a substring. The position is a 1-base index, meaning that the first character in a string has the position 1, and so on.
If the substring does not exist, the POSITION function returns 0.
Basic SQL POSITION example #
The following example uses the POSITION example to find the first occurrence of the string "SQL" in the string "SQL will, SQL will rock you!":
SELECT
POSITION('SQL' IN 'SQL will, SQL will rock you!') AS sql_position;Code language: PHP (php)Output:
sql_position
--------------
1The following example returns zero because the input string doesn’t have the substring “We”:
SELECT
POSITION('We' IN 'SQL will, SQL will rock you!') AS result;Code language: PHP (php)Output:
result
--------
0Finding the Position of a Substring in Employee Names #
We’ll use the employees from the HR sample database to demonstrate the POSITION function:

The following query uses the POSITION function to find employees with the letter A in the first_name column along with the position:
SELECT
first_name,
POSITION('A' IN first_name) AS position_of_a
FROM
employees
WHERE
POSITION('A' IN first_name) > 0;Code language: SQL (Structured Query Language) (sql)Output:
first_name | position_of_a
------------+---------------
Alexander | 1
Alexander | 1
Adam | 1
...Code language: SQL (Structured Query Language) (sql)Filtering Rows Based on Substring Position #
The following statement uses the POSITION function to find employees whose email addresses start with the letter J:
SELECT
email
FROM
employees
WHERE
POSITION('j' IN email) = 1;Code language: SQL (Structured Query Language) (sql)Output:
email
-----------------------------------
[email protected]
jose [email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]Code language: SQL (Structured Query Language) (sql)In this example, we use the POSITION function in the WHERE clause to filter rows where the letter j is the first character in the email column.
Using the POSITION function with CASE expressions #
The following query uses the POSITION function with a CASE expression to query flag employees whose phone numbers start with 555:
SELECT
phone_number,
CASE
WHEN POSITION('515' IN phone_number) > 0 THEN 'Starts with 515'
ELSE 'Does not start with 515'
END AS status
FROM
employees;Code language: SQL (Structured Query Language) (sql)Output:
phone_number | status
---------------+-------------------------
515-123-4567 | Starts with 515
515-123-4568 | Starts with 515
515-123-4569 | Starts with 515
590-423-4567 | Does not start with 515
590-423-4568 | Does not start with 515
...Code language: SQL (Structured Query Language) (sql)Summary #
- Use the
POSITIONfunction to return the position of the first occurrence of a substring (1-based) in an input string. - The
POSITIONfunction returns zero if the substring is unavailable in the input string.