La siguiente es una consulta simple que estoy corriendo para rectificar NULLs por hacer de ellos '0':

SELECT 
    CASE WHEN R.P IS NULL THEN '0' ELSE R.P END AS 'RectifyNull'
FROM 
    RBase r

Este es todavía el regreso me NULL valores cuando quiero un valor de cadena de 0 en los resultados en lugar de la NULL

¿Qué estoy haciendo mal?

  • Está usted seguro de que el valor es en realidad NULL? Su case declaración debería funcionar, pero existen otras alternativas, tales como COALESCE y ISNULL
  • dejar de downvoting todos la respuesta, todos ellos han proporcionado métodos válidos de la fijación de su problema, su problema es que no se ha indicado correctamente o no ha proporcionado información precisa.
  • Como seguimiento, intente SELECT * FROM RBase WHERE P IS NULL — obtener ningún resultado? ¿WHERE P = '' O incluso peor WHERE P = 'NULL'?
  • Cogió el problema. Los resultados son realmente literal NULLs… Tenía que buscar = ‘NULL’…Gracias por la lluvia de ideas de todos.
  • Por qué iba alguien a votar para cerrar esta pregunta, por estar «fuera de tema»? Este es un básico de programación de que se trate.
  • banderas… downvotes… a veces las personas se apresuran a criticar, pero no tan rápido en la alabanza. 😛

InformationsquelleAutor Squ1rr3lz | 2014-12-29

3 Comentarios

  1. 4

    ¿ COALESCE ?

     SELECT COALESCE(`R.P`, '0') as 'RectifyNull'
    FROM 
        RBase r
    • He intentado ya y sólo vuelve a intentar de nuevo y sigue recibiendo NULL resultados…también probé ISNULL() y recibido aún NULL resultados.
    • es la cadena ‘NULL’, o es un NULL, hay una diferencia
    • El problema fue que era en realidad cadena NULL. Gracias.
  2. 2

    Lo que usted necesita es el uso de la «isnull» de la función. Lo isnull hará es reemplazar los valores null con el valor que se especifique en el segundo parámetro.

    ex-

    select 
    R.P
    , isnull(R.P, '0') as replacingNulls
    from RBase r

    EDITAR: si el valor NULL no es en realidad un NULO, y en lugar de un literal de cadena «NULL», entonces usted debe utilizar una instrucción case así:

    select 
    R.P
    , case when R.P = 'NULL' then '0' else R.P end as replacingNulls
    from RBase r
    • He intentado ya y sólo vuelve a intentar de nuevo y sigue recibiendo resultados NULOS
    • entonces está usted seguro de que son NULOS, y no sólo un valor de cadena «NULL» ? si es sólo un literal de cadena «NULL», a continuación, utilice una instrucción case.
  3. 1

    Lo que has publicado debe trabajo, están seguros de que están encontrando NULL y no cadena vacía? («)

    Otra manera de escribir sería:

    SELECT isNull(r.p, '0') as 'RectifyNull'
    FROM RBase r

    para lidiar con cadenas vacías ( «» ) y cadenas NULAS

    SELECT 
        CASE 
            WHEN R.P IS NULL THEN '0' 
            WHEN r.p = 'NULL' THEN '0'
            ELSE R.P 
        END AS 'RectifyNull'
    FROM 
        RBase r
    • Sólo traté de cadena vacía….todavía escupir NULLs
    • es más probable que no una cadena vacía; las cadenas vacías se muestran como espacios en blanco, no es NULL.
    • ah sí, no había pensado en eso, gracias

Dejar respuesta

Please enter your comment!
Please enter your name here