Avalados por :

Cómo verificar la igualdad en HANA utilizando 'IS' y 'IS NULL'

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 27 Vistas
0
Cargando...

HANA ofrece tanto los operadores '=' como 'IS' para verificar la igualdad. Desafortunadamente, HANA solo admite 'IS' al comparar con NULL (IS NULL).

¿Existe una forma alternativa de agregar un criterio 'WHERE FieldA IS FieldB' con HANA?

Estoy tratando de evitar algo como:

WHERE (fieldA IS NULL and fieldB IS NOT NULL OR fieldA IS NOT NULL and fieldB IS NULL OR FieldA != FieldB)

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Es difícil decir, ya que debería funcionar en todas las bases de datos. Creo que me quedaría con tu primer enfoque, aunque sea un poco feo.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola David,

¿Cuál sería la mejor manera de comparar dos columnas teniendo en cuenta los valores nulos? Preferiblemente algo que funcione en las vistas de CDL.

IFNULL(DateFieldA, timestamp'1970-01-01 00:00:00') != IFNULL(DateFieldB, timestamp'1970-01-01 00:00:00')

Parece funcionar. ¿Pero quizás hay mejores opciones?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Bart,

Un valor `null` en una base de datos no es comparable, eso significa que cada operador de comparación devolverá falso, excepto `nullField is null`.

Saludos cordiales,
David

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

En CAP Java , el operador CDS QL IS no tiene la restricción mencionada anteriormente, pero puede comparar cualquier par de valores con semántica de comparación de dos valores.

Dado que OData exige la comparación de dos valores, CAP Java mapea el operador OData eq al operador CDS QL IS .

Dado que HANA tiene la restricción de que IS solo puede comparar con NULL, en HANA la expresión CDS QL

a IS b 

se expande a

(a = b AND a IS NOT NULL AND b IS NOT NULL) OR (a IS NULL AND b IS NULL)

Si a o b se conocen como nulos o no nulos, se aplican simplificaciones.

En SQLite, el operador IS se puede aplicar a cualquier valor en el lado derecho y CAP Java lo utiliza en consecuencia.

La forma estándar de SQL de hacer una comparación de dos valores es en realidad

a IS NOT DISTINCT FROM b

lo cual no es compatible con HANA, desafortunadamente. CAP Java utiliza esta traducción en PostgreSQL.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?