Replace function in SQL

Learn replace function in sql with practical examples, diagrams, and best practices. Covers sql, sql-server, t-sql development techniques with visual explanations.

Mastering the REPLACE Function in SQL

Hero image for 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:

  1. string_expression: The original string in which you want to perform the replacement.
  2. string_pattern: The substring you want to find and replace.
  3. string_replacement: The substring that will replace all occurrences of string_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.

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 returns NULL if the string_expression is NULL. Use COALESCE or ISNULL to provide a default value if you want to avoid NULL 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'