SQL String Functions: Syntax, Usage, and Examples
SQL string functions allow you to manipulate and extract information from text data stored in your database. Whether you’re trimming whitespace, converting case, or finding patterns, mastering these functions gives you powerful tools to clean, search, and transform strings.
How to Use SQL String Functions
You use SQL string functions in SELECT
statements , WHERE
clauses, and anywhere you want to work with text-based values. These functions accept one or more string arguments and return modified or calculated results.
Here’s a basic example using UPPER()
:
sql
SELECT UPPER(first_name) AS upper_name FROM users;
Use SQL string functions to modify how text appears in query results or to match search criteria with precision.
When to Use String Functions in SQL
SQL string functions come in handy across many types of queries and workflows. Here’s when you might reach for them.
Clean and Standardize Data
Use string functions in SQL when you want to remove leading/trailing spaces, fix inconsistent casing, or strip unwanted characters. This is common when importing messy data or preparing it for reports.
Perform Pattern Matching
Use functions like CHARINDEX
, LIKE
, and PATINDEX
when you need to locate specific sequences of characters inside a larger string.
Extract or Transform Data
Use SQL string functions to extract parts of a string—like first names from full names or area codes from phone numbers. You can also build new string values by combining fields together.
Validate Input or Build Conditions
Use string functions inside WHERE
clauses or CASE
statements to validate formats, check values, or filter based on specific substrings.
Examples of Common SQL String Functions
Let’s explore examples of popular SQL string functions in action.
UPPER() and LOWER()
Use these to change the case of a string:
sql
SELECT UPPER('hello') AS all_caps, LOWER('WORLD') AS all_lower;
You might use them when comparing strings case-insensitively or for consistent formatting in reports.
LEN() or LENGTH()
Use these to count the number of characters in a string:
sql
SELECT LEN('hello world') AS char_count;
In databases like MySQL, use LENGTH()
instead of LEN()
.
LEFT() and RIGHT()
Use these to get characters from the start or end of a string:
sql
SELECT LEFT('invoice_2024', 7) AS prefix; -- returns 'invoice'
SELECT RIGHT('invoice_2024', 4) AS suffix; -- returns '2024'
These are great for parsing IDs, filenames, or codes.
SUBSTRING()
Use this to extract a specific section of a string by position:
sql
SELECT SUBSTRING('abcdef', 2, 3) AS segment; -- returns 'bcd'
You might use this to pull out middle names, fixed-length codes, or structured data embedded in a string.
TRIM(), LTRIM(), and RTRIM()
Use TRIM()
to remove spaces from both ends of a string. Use LTRIM()
and RTRIM()
to remove spaces just from the left or right side.
sql
SELECT TRIM(' hello ') AS cleaned;
This is useful when dealing with user input or CSV imports.
CHARINDEX() or INSTR()
Use these to find where a substring appears in another string:
sql
SELECT CHARINDEX('dog', 'hotdog bun'); -- returns 4
In MySQL, use INSTR()
instead of CHARINDEX
.
CONCAT() or +
Operator
Use CONCAT()
to combine two or more strings:
sql
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;
In SQL Server, you can also use +
:
sql
SELECT first_name + ' ' + last_name AS full_name;
Use this in reports, labels, or constructing email addresses.
Learn More About SQL String Functions
Nesting String Functions
You can chain or nest string functions for more complex operations. For example, to clean a string and format it for display:
sql
SELECT UPPER(TRIM(name)) AS formatted_name
FROM contacts;
This trims and capitalizes the name at the same time.
Using String Functions in WHERE Clauses
You can apply string functions directly in filtering conditions:
sql
SELECT *
FROM employees
WHERE LEFT(last_name, 1) = 'S';
This query returns all employees whose last name starts with “S”.
Or use CHARINDEX
to check if a string contains a keyword:
sql
SELECT *
FROM products
WHERE CHARINDEX('eco', product_description) > 0;
Use this approach to filter based on embedded terms.
SQL Server String Functions Specifics
In SQL Server, you have access to more advanced string functions like STRING_AGG()
for grouping:
sql
SELECT STRING_AGG(first_name, ', ') AS names
FROM users
WHERE city = 'Austin';
Use this to create comma-separated lists from grouped rows.
Another useful function is FORMAT()
for displaying numbers or dates as strings:
sql
SELECT FORMAT(salary, 'C', 'en-US') AS formatted_salary
FROM payroll;
This converts salary numbers into U.S. currency format.
Finding and Replacing Substrings
Use REPLACE()
to substitute one substring for another:
sql
SELECT REPLACE('2023-01-01', '-', '/') AS new_date;
You can use this to normalize date formats or strip out symbols.
Counting Words or Delimited Items
If your string has a known delimiter, you can count items by comparing lengths:
sql
SELECT LEN('apple,banana,pear') - LEN(REPLACE('apple,banana,pear', ',', '')) + 1 AS item_count;
Use this to find how many words or values are in a delimited string column.
Dealing With NULLs
Be aware that most SQL string functions return NULL if one of their inputs is NULL. Use ISNULL()
or COALESCE()
to handle these cases:
sql
SELECT CONCAT(COALESCE(first_name, ''), ' ', COALESCE(last_name, '')) AS full_name
FROM customers;
Use this to avoid losing entire rows due to null values.
Formatting Output in Reports
When preparing results for reports, string functions help you format data fields into readable sentences:
sql
SELECT CONCAT('Order #', order_id, ' placed on ', CAST(order_date AS VARCHAR)) AS summary
FROM orders;
This turns raw columns into narrative-style messages.
Use Cases for SQL String Functions in Real Applications
- Creating unique usernames from first and last names
- Parsing email addresses to extract domains
- Generating search-friendly slugs from product titles
- Formatting mailing labels from name/address components
- Cleaning messy imports before inserting into the database
- Validating phone number formats before saving
Use SQL string functions anytime your data needs a little extra shaping to fit the business rules or display needs. With practice, you’ll be able to combine them fluently for advanced transformations.