Ir al contenido principal

Cómo usar la función SQL REPLACE()

Aprende a usar la función SQL REPLACE() para encontrar y sustituir subcadenas en tu base de datos. Incluye sintaxis, sensibilidad a mayúsculas, eliminación de caracteres, gestión de NULL y consejos de rendimiento.
Actualizado 3 jun 2026  · 7 min leer

La función de SQL REPLACE() es muy útil para manipular texto, ya que permite sustituir una parte de una cadena por otra subcadena que especifiques. En la mayoría de los casos, REPLACE() se usa para modificar todas las apariciones de una subcadena dentro de una cadena en un conjunto de datos.

La manipulación de texto es clave en SQL porque ayuda a limpiar y transformar datos para analizarlos con eficiencia. En este tutorial te enseño cómo usarla.

Si aspiras a ser data scientist o data engineer, te recomiendo el curso Introduction to SQL de DataCamp para entender las bases de las funciones de SQL en la transformación de datos. También puedes consultar nuestra guía de funciones de cadenas en SQL para repasar conceptos fundamentales mientras profundizamos en el tema. 

Obtén una Certificación Top SQL

Demuestra tus conocimientos básicos de SQL y avanza en tu carrera de datos.
Certifícate en SQL

TL;DR

  • REPLACE(string, old_substring, new_substring) sustituye todas las apariciones de una subcadena en una sola llamada

  • Encadena llamadas para reemplazar varias subcadenas: REPLACE(REPLACE(col, 'a', 'b'), 'c', 'd')

  • Pasa una cadena vacía para eliminar caracteres: REPLACE(phone, '-', '')

  • Si algún argumento es NULL, la función devuelve NULL para esa fila

  • La distinción entre mayúsculas y minúsculas depende de tu base de datos y la intercalación: SQL Server y MySQL suelen ser no sensibles a mayúsculas por defecto; PostgreSQL, sensible a mayúsculas por defecto

Entendiendo la función SQL REPLACE()

La función REPLACE() en SQL busca la subcadena o cadena indicada en una columna y la reemplaza por otra cadena dada. El ejemplo siguiente muestra el uso básico de REPLACE(). Los argumentos de la función son:

  • string: La cadena original donde se hará el reemplazo.

  • old_substring: La subcadena que quieres reemplazar.

  • new_substring: La subcadena que sustituirá a la anterior.

REPLACE(string, old_substring, new_substring)

Al usar REPLACE() para modificar cadenas en una tabla, la consulta tendrá la siguiente sintaxis, donde:

  • column_name: La columna en la que se buscan las apariciones de la subcadena.

  • old_substring: La subcadena que quieres reemplazar.

  • new_substring: La subcadena que sustituye a la anterior.

-- Selecciona la columna description de la tabla products,
-- sustituyendo 'old' por 'new'
SELECT 
    REPLACE(column_name, 'old_substring', 'new_substring') AS updated_column
FROM 
    Products;

Ejemplo de REPLACE()

La función REPLACE() en SQL sustituye todas las apariciones de una cadena por la subcadena o cadena indicada. En el ejemplo siguiente, REPLACE() ha reemplazado el valor old por new en la columna description. La consulta se ejecuta fila a fila para cambiar la cadena antigua por la nueva.

-- Selecciona la columna description de la tabla products,
-- sustituyendo 'old' por 'new'
SELECT 
    REPLACE(description, 'old', 'new') AS updated_description
FROM 
    Products;

Nota: Las bases de datos MySQL, PostgreSQL, Oracle y SQL Server admiten la función REPLACE().

Casos de uso de REPLACE() en SQL

Existen muchos casos de uso relevantes de REPLACE() en la manipulación de texto y la transformación de datos. Algunos ejemplos:

Reemplazo básico

Puedes usar REPLACE() para realizar un reemplazo básico. Supongamos que tenemos la siguiente tabla en nuestra base de datos de SQL Server:

Ejemplo de tabla Products en una base de datos SQL.Ejemplo de tabla Products. Imagen del autor.

Con la siguiente consulta SQL, puedes usar REPLACE() para cambiar el estado old por new.

SELECT 
    product_id,
    product_name,
    price,
    REPLACE(status, 'old', 'new') AS updated_status
FROM Products;

La tabla resultante tendrá un aspecto similar al que ves a continuación.

Ejemplo de tabla Products actualizada con la función REPLACE básica de SQL

Tabla actualizada con SQL REPLACE(). Imagen del autor.

Reemplazar varias subcadenas

Si necesitas reemplazar varias subcadenas, encadena múltiples llamadas a REPLACE(). Aquí actualizamos el valor old por outdated y new por fresh.

-- Encadena varias REPLACE() para cambiar 'old' por 'outdated' y 'new' por 'fresh'
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(REPLACE(status, 'old', 'outdated'), 'new', 'fresh') AS updated_status
FROM Products;

La tabla resultante se muestra a continuación.

Ejemplo de tabla Products actualizada usando múltiples subcadenas con REPLACE de SQL.

Tabla actualizada usando múltiples subcadenas. Imagen del autor.

Eliminar caracteres

Pasa una cadena vacía como tercer argumento para eliminar caracteres por completo. Es la forma más limpia de quitar signos de puntuación, espacios extra o caracteres de formato de una columna.

-- Quitar guiones de los números de teléfono
SELECT
    customer_id,
    REPLACE(phone_number, '-', '') AS clean_phone
FROM Customers;

Por ejemplo, '555-867-5309' pasa a ser '5558675309'. La misma técnica sirve para eliminar caracteres especiales, artefactos de codificación o espacios en blanco no deseados en datos importados.

Gestionar la sensibilidad a mayúsculas

La sensibilidad a mayúsculas de REPLACE() depende de tu base de datos y su intercalación. PostgreSQL la trata como sensible a mayúsculas por defecto, por lo que REPLACE(col, 'Old', 'New') no coincidirá con 'old'. SQL Server y MySQL siguen la intercalación de la columna o la base de datos: en la mayoría de instalaciones por defecto no se distingue entre mayúsculas, así que REPLACE() hará coincidir independientemente del caso.

Si quieres reemplazar valores sin distinguir mayúsculas, usa UPPER() o LOWER() para convertir el texto antes del reemplazo. Esta técnica mantiene los valores consistentes.

-- Reemplazar 'OLD' por 'OUTDATED', gestionando mayúsculas convirtiendo a mayúsculas
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(UPPER(status), 'OLD', 'OUTDATED') AS updated_status
FROM Products;

Salida de ejemplo de tabla actualizada usando las funciones SQL REPLACE y UPPER.

Tabla actualizada con REPLACE() y UPPER(). Imagen del autor.

-- Reemplazar 'old' por 'outdated', gestionando mayúsculas convirtiendo a minúsculas
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(LOWER(status), 'old', 'outdated') AS updated_status
FROM Products;

Salida de ejemplo de tabla actualizada usando las funciones SQL REPLACE y LOWER.

Tabla actualizada con REPLACE() y LOWER(). Imagen del autor.

Técnicas avanzadas

Estas técnicas combinan REPLACE() con otras funciones de SQL para gestionar sustituciones que van más allá del simple buscar y reemplazar.

Reemplazos con valores dinámicos

Puedes realizar reemplazos dinámicos combinando REPLACE() con otras funciones de SQL. Por ejemplo, puedes usar el valor de otra columna para sustituir la subcadena. En el ejemplo siguiente, REPLACE() reemplaza cada producto antiguo por el valor real de product_name.

-- Reemplazar 'old' por el valor de la columna product_name
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(status, 'old', product_name) AS updated_status
FROM Products;

Salida de ejemplo de tabla actualizada usando REPLACE de SQL y valores dinámicos.

Tabla actualizada con REPLACE() y valores dinámicos. Imagen del autor.

Usar REPLACE() en sentencias UPDATE

La función REPLACE() funciona dentro de sentencias UPDATE para modificar valores de columnas en una o varias filas. La consulta siguiente actualiza el valor old por outdated en la columna status.

-- Actualizar la columna status para reemplazar 'old' por 'outdated'
UPDATE Products
SET status = REPLACE(status, 'old', 'outdated')
WHERE status LIKE '%old%';

Para escenarios más complejos, como actualizar una tabla uniéndola con otra, echa un vistazo a nuestro tutorial sobre SQL UPDATE con JOIN.

Combinar REPLACE() con otras funciones de cadena

Una técnica avanzada consiste en combinar REPLACE() con otras funciones de cadenas en SQL, como CHARINDEX() o SUBSTRING(), al reemplazar valores de texto.

-- Reemplazar la parte del nombre del producto desde el primer espacio por 'Updated'
SELECT 
    product_id,
    product_name,
    price,
    -- Extrae la subcadena de product_name desde el primer espacio hasta el final
    REPLACE(product_name, SUBSTRING(product_name, CHARINDEX(' ', product_name), LEN(product_name)), ' Updated') AS updated_product_name
FROM Products;

La tabla resultante de la consulta anterior se muestra a continuación.

Salida de ejemplo de tabla actualizada usando REPLACE y otras funciones de cadena.

Tabla actualizada con REPLACE() y otras funciones de cadenas. Imagen del autor.

Reemplazar NULL por 0

Puedes usar la función COALESCE() para sustituir el valor NULL por un valor de reserva antes de llamar a REPLACE(), como se muestra a continuación.

-- Reemplazar NULL por 'new' en la columna status
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(COALESCE(status, 'NULL'), 'NULL', 0) AS updated_status
FROM Products;

Ojo: si cualquiera de los argumentos que pasas a REPLACE() es NULL, la función devuelve NULL para esa fila, aunque los demás argumentos sean válidos. Envuelve las columnas que puedan ser nulas con COALESCE() antes de llamar a REPLACE(), no después.

Aplicaciones prácticas de la función SQL REPLACE()

Estos son escenarios en los que REPLACE() se gana su lugar en consultas de producción.

  • Limpieza de datos: REPLACE() es útil para limpiar datos eliminando o sustituyendo caracteres o espacios no deseados en cadenas dentro de un conjunto de datos.

  • Transformación de datos: se usa para transformar datos cambiando valores a otros formatos y actualizando valores obsoletos por nuevos.

  • Gestión de entradas de usuario: resulta clave para ajustar y convertir datos introducidos por personas a un estándar uniforme aceptado en una base de datos concreta. Así aseguras uniformidad.

  • Estandarización de texto: estandariza valores en columnas de texto para mantener la coherencia, por ejemplo, aplicar abreviaturas en minúsculas o mayúsculas.

  • Reemplazo condicionado: también facilita la gestión de bases de datos sustituyendo valores según reglas específicas.

Implementaciones específicas por base de datos de REPLACE()

MySQL, PostgreSQL, Oracle y SQL Server admiten la función REPLACE() en SQL, con una sintaxis muy similar entre ellas.

-- Reemplazar 'old' por 'new' en la columna status
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(status, 'old', 'new') AS updated_status
FROM Products;

Rendimiento y buenas prácticas con REPLACE()

Al usar REPLACE(), ten en cuenta estas consideraciones de rendimiento y buenas prácticas.

Impacto en el rendimiento de la consulta

REPLACE() puede afectar al rendimiento, sobre todo con conjuntos de datos grandes. Ocurre porque la función procesa la tabla fila a fila y la ejecución puede tardar.

Consideraciones de indexación

Indexa la columna sobre la que consultas antes de usar REPLACE() en una cláusula WHERE o en un UPDATE. Sin índice, la base de datos escanea todas las filas para encontrar coincidencias, algo especialmente costoso en tablas grandes.

Supervisión y resolución de cuellos de botella

Para mitigar problemas de rendimiento, aplica estas prácticas:

  • Usa herramientas de perfilado de la base de datos para monitorizar y optimizar consultas con grandes volúmenes de datos.

  • Cuando uses REPLACE() para modificar valores de texto, mantén los índices con regularidad para asegurar su alineación.

  • Recurre al procesamiento por lotes para reducir el tiempo de ejecución con conjuntos de datos muy grandes.

Para aprender otras funciones avanzadas de SQL orientadas a la transformación de datos, te recomiendo el curso Learn SQL de DataCamp. El curso Reporting in SQL también cubre temas de optimización de bases de datos y te enseña técnicas para mejorar el rendimiento.

Conclusiones

La función REPLACE() cubre la mayoría de necesidades de sustitución de texto en bases de datos SQL. Ten presente el comportamiento con NULL (cualquier argumento NULL devuelve NULL) y revisa la intercalación de tu base de datos cuando importe la sensibilidad a mayúsculas.

Puedes profundizar en REPLACE() con los cursos Intermediate SQL y SQL Fundamentals de DataCamp. También te recomiendo el itinerario profesional Associate Data Analyst in SQL para aprender más sobre las aplicaciones de SQL en la transformación de datos y dar impulso a tu carrera profesional. Por último, anímate a conseguir la SQL Associate Certification de DataCamp para acreditar tu dominio de SQL en análisis de datos y destacar en las entrevistas.

Si te interesa aprender más sobre funciones de SQL usadas en análisis de datos, echa un vistazo a otros de mis tutoriales:

Preguntas frecuentes

¿Qué es la función SQL REPLACE()?

La función de SQL REPLACE() reemplaza o modifica todas las apariciones de una subcadena indicada por otra subcadena.

¿La función REPLACE() distingue mayúsculas y minúsculas?

La función REPLACE() en SQL distingue mayúsculas y minúsculas. Si quieres manejar valores sin distinción de mayúsculas, convierte la cadena con UPPER o LOWER antes del reemplazo.

¿Puede REPLACE() en SQL reemplazar varias subcadenas?

Si quieres reemplazar varias subcadenas, encadena múltiples funciones REPLACE() en SQL.

¿Qué bases de datos de SQL admiten la función REPLACE()?

Todas las bases de datos principales, incluidas SQL Server, Oracle, PostgreSQL y MySQL, admiten la función REPLACE() de SQL.

¿La función REPLACE() de SQL afecta al rendimiento de las consultas?

La función REPLACE() en SQL puede afectar al rendimiento de la consulta con conjuntos de datos grandes. Para mejorar el rendimiento, optimiza las consultas y usa una indexación adecuada.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Creo artículos que simplifican la ciencia de los datos y la analítica, haciéndolos fáciles de entender y accesibles.
Temas

Aprende SQL con DataCamp

programa

Analista de datos asociado en SQL

39 h
Adquiere los conocimientos de SQL que necesitas para consultar una base de datos, analizar los resultados y convertirte en un analista de datos competente en SQL. ¡No se requiere experiencia previa en codificación!
Ver detallesRight Arrow
Iniciar curso
Ver másRight Arrow
Relacionado

Tutorial

Cómo utilizar la función COALESCE() en SQL (con ejemplos)

Aprende a utilizar la función COALESCE() de SQL para tratar valores nulos, combinar columnas y limpiar tus datos con ejemplos y consejos reales.
Travis Tang 's photo

Travis Tang

Tutorial

Tutorial de comparación de patrones SQL LIKE

Utiliza LIKE para filtrar registros SQL según coincidencias de cadenas específicas. Este tutorial te enseña a utilizar comodines, NOT, LOWER, UPPER y CASE WHEN con LIKE.
Travis Tang 's photo

Travis Tang

Tutorial

Comprender la función DECODE() de SQL

Aprende a utilizar DECODE() en Oracle para la lógica condicional en la transformación de datos. Compara DECODE() con la sentencia CASE WHEN en cuanto a rendimiento y comportamiento.
Allan Ouko's photo

Allan Ouko

Tutorial

Cómo utilizar un alias SQL para simplificar tus consultas

Explora cómo el uso de un alias SQL simplifica tanto los nombres de las columnas como los de las tablas. Aprende por qué utilizar un alias SQL es clave para mejorar la legibilidad y gestionar uniones complejas.
Allan Ouko's photo

Allan Ouko

Tutorial

FUNCIÓN SQL FORMAT()

FORMAT() es una de las funciones más utilizadas en SQL. Conozca sus principales aplicaciones en este tutorial.
Travis Tang 's photo

Travis Tang

Tutorial

Ejemplos y tutoriales de consultas SQL

Si quiere iniciarse en SQL, nosotros le ayudamos. En este tutorial de SQL, le presentaremos las consultas SQL, una potente herramienta que nos permite trabajar con los datos almacenados en una base de datos. Verá cómo escribir consultas SQL, aprenderá sobre
Sejal Jaiswal's photo

Sejal Jaiswal

Ver másVer más