Replace function in SQL
Mastering the REPLACE Function in SQL

Learn how to use the SQL REPLACE function to substitute substrings within a string, with practical examples and best practices for various SQL dialects.
The REPLACE
function in SQL is a powerful tool for manipulating string data. It allows you to search for all occurrences of a specified substring within a given string and replace them with another specified substring. This functionality is crucial for data cleansing, standardization, and formatting tasks within your database. Understanding its syntax and behavior across different SQL dialects is key to effective database management.
Understanding the REPLACE Function Syntax
The basic syntax for the REPLACE
function is generally consistent across most SQL database systems, including SQL Server, MySQL, PostgreSQL, and Oracle. However, there might be minor differences in how certain edge cases or data types are handled. The function typically takes three arguments:
string_expression
: The original string in which you want to perform the replacement.string_pattern
: The substring you want to find and replace.string_replacement
: The substring that will replace all occurrences ofstring_pattern
.
flowchart LR A["Original String (string_expression)"] --> B["Find (string_pattern)"] B --> C["Replace With (string_replacement)"] C --> D["Resulting String"] style A fill:#f9f,stroke:#333,stroke-width:2px style D fill:#bbf,stroke:#333,stroke-width:2px
Conceptual flow of the SQL REPLACE function
SELECT REPLACE('Hello World', 'World', 'SQL');
-- Result: 'Hello SQL'
SELECT REPLACE('Mississippi', 'iss', 'our');
-- Result: 'MourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourourThe `REPLACE` function in SQL is a powerful tool for manipulating string data. It allows you to search for all occurrences of a specified substring within a given string and replace them with another specified substring. This functionality is crucial for data cleansing, standardization, and formatting tasks within your database. Understanding its syntax and behavior across different SQL dialects is key to effective database management.
Practical Examples and Use Cases
Let's explore some common scenarios where the REPLACE
function proves invaluable. From cleaning up inconsistent data entries to formatting output for reports, its applications are widespread.
-- Example 1: Correcting a common misspelling
SELECT REPLACE('Teh quick brown fox', 'Teh', 'The');
-- Result: 'The quick brown fox'
-- Example 2: Removing spaces from a string (e.g., for IDs)
SELECT REPLACE('Product ID 123', ' ', '');
-- Result: 'ProductID123'
-- Example 3: Changing date format separators
SELECT REPLACE('2023-10-26', '-', '/');
-- Result: '2023/10/26'
-- Example 4: Replacing NULL with an empty string (or vice-versa, depending on dialect)
-- In SQL Server, NULL is not a string, so REPLACE(NULL, 'a', 'b') returns NULL.
-- To handle NULLs, use COALESCE or ISNULL:
SELECT REPLACE(COALESCE(NULL, 'N/A'), 'N/A', 'Not Available');
-- Result: 'Not Available'
-- Example 5: Updating data in a table
-- UPDATE Employees
-- SET PhoneNumber = REPLACE(PhoneNumber, '-', '')
-- WHERE PhoneNumber LIKE '%-%';
Various examples demonstrating the REPLACE function in action.
REPLACE
to update data in a table, always test your SELECT
statement with the REPLACE
function first to ensure the desired outcome before executing the UPDATE
statement. This prevents unintended data modifications.Considerations and Best Practices
While REPLACE
is straightforward, keep these points in mind for optimal use:
- Case Sensitivity: The behavior of
REPLACE
regarding case sensitivity can vary by database system and its collation settings. For instance, SQL Server's default collations are often case-insensitive, while PostgreSQL is typically case-sensitive by default. Always verify this behavior for your specific environment. - Performance: For very large strings or frequent operations on large datasets, consider the performance implications. Repeated string manipulations can be resource-intensive. If you need to perform complex pattern replacements (e.g., using regular expressions), other functions like
REGEXP_REPLACE
(available in PostgreSQL, Oracle, MySQL 8+) might be more suitable and efficient. - Empty String Replacement: Replacing a pattern with an empty string (
''
) effectively removes all occurrences of that pattern. This is a common technique for data cleansing. - NULL Handling: As shown in Example 4,
REPLACE
typically returnsNULL
if thestring_expression
isNULL
. UseCOALESCE
orISNULL
to provide a default value if you want to avoidNULL
results.
REPLACE
might not behave as expected, especially with multi-byte characters. Ensure consistent encoding for reliable results.SQL Server
SELECT REPLACE('SQL Server Example', 'Server', 'DB'); -- Result: 'SQL DB Example'
MySQL
SELECT REPLACE('MySQL Example', 'SQL', 'Database'); -- Result: 'MyDatabase Example'
PostgreSQL
SELECT REPLACE('PostgreSQL Example', 'Post', ''); -- Result: 'greSQL Example'
Oracle
SELECT REPLACE('Oracle Example', 'Example', 'DB'); -- Result: 'Oracle DB'