Hay alguna diferencia entre ellos ES NULA y =NULL

Me sorprende ver que ES NULO y =NULL están dando resultados diferentes en una consulta de selección. ¿Cuál es la diferencia entre ellos? Cuándo utilizar qué. Yo estaría encantado si usted me puede explicar en detalle.

InformationsquelleAutor satya | 2010-09-23

3 Kommentare

  1. 40

    = NULL es siempre unknown (esta es una pieza de 3 lógica de estado), pero WHERE cláusula de la trata como false y las gotas del conjunto de resultados. Así que para NULL debe utilizar IS NULL

    Razones que se describen a continuación: ¿Por qué NULL = NULL evalúe a false en SQL server

    • No es false. Es unknown. Si era falso entonces NOT(X = NULL) sería true. Este no es el caso. SQL utiliza 3 valores de la lógica.
    • Smith sé acerca de 3 lógica de estado. pero WHERE cláusula trata unknown como false desde y hacia el conjunto de resultados.
  2. 11

    A añadir a las respuestas existentes, depende de si usted tiene ANSI_NULLS on o no, cuando se utiliza «= NULL».

    -- This will print TRUE
    SET ANSI_NULLS OFF;
    IF NULL = NULL
        PRINT 'TRUE'
    ELSE
        PRINT 'FALSE'
    
    -- This will print FALSE
    SET ANSI_NULLS ON;
    IF NULL = NULL
        PRINT 'TRUE'
    ELSE
        PRINT 'FALSE'
  3. 2

    Hay una diferencia entre IS NULL y = NULL y esto es debido a que de los tres valores de la lógica de SQL:

    https://en.wikipedia.org/wiki/Null_%28SQL%29#Three-valued_logic_.283VL.29

    Extracto de un párrafo pertinente:

    Desafíos

    Nulo ha sido el foco de la controversia y una fuente de
    debate debido a sus asociados de tres valores de la lógica (3VL), especial
    requisitos para su uso en combinaciones de SQL, y los de manejo especial
    requerido por las funciones de agregado de SQL y la agrupación de operadores. Equipo
    profesor de ciencias Ron van der Meyden resume las diferentes cuestiones como:
    «Las inconsistencias en el estándar SQL significa que no es posible
    atribuir cualquier intuitiva lógica semántica para el tratamiento de valores nulos
    en SQL». Aunque se han realizado varias propuestas para resolver estos
    problemas, la complejidad de las alternativas que ha impedido a sus
    la adopción generalizada.

    • Por favor, no enviar link-sólo respuestas. Incluir la información pertinente a partir de aquí el enlace, por lo que si el sitio de destino desaparece, su respuesta será útil. (Esta es la mejor como un comentario.)

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea