es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

SQL Server: reemplazar por NULL

SELECT REPLACE(‘hello’, ‘e’, ”)
— returns NULL

SELECT REPLACE(‘hello’, ‘5’, ”)
— also returns NULL – aquí esperaría que no haga nada ya que no hay ‘5’ en ‘hello’

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Según el comportamiento de la función REPLACE descrito en la documentación, no hay una solución alternativa que emita un valor NULL si se encuentra un patrón en una cadena. Si alguno de los argumentos es NULL, entonces la función devolverá NULL.

    Sin embargo, si aún necesitas manejar casos en los que se encuentra un patrón en una cadena y emitir un valor NULL, podrías utilizar una sentencia CASE para verificar el patrón y devolver NULL si se encuentra. Por ejemplo:

    SELECT CASE WHEN 'hello' LIKE '%e%' THEN NULL ELSE REPLACE('hello', 'e', NULL) END
    -- devuelve NULL para 'hello', pero 'hll' para 'hill'
    

    En este caso, la sentencia CASE primero verifica si la cadena ‘hello’ contiene el patrón ‘e’. Si lo hace, devuelve NULL. Si no lo hace, entonces aplica la función REPLACE de manera normal.

Comments are closed.