Avalados por :

Como verificar a igualdade no HANA usando 'IS' e 'IS NULL'

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

HANA oferece tanto os operadores '=' como 'IS' para verificar a igualdade. Infelizmente, HANA só suporta 'IS' ao comparar com NULL (IS NULL).

Existe uma forma alternativa de adicionar um critério 'WHERE FieldA IS FieldB' com HANA?

Estou tentando 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...

É difícil dizer, pois deveria funcionar em todos os bancos de dados. Acho que ficaria com a tua primeira abordagem, mesmo que seja um pouco feia.

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

Olá David,

Qual seria a melhor maneira de comparar duas colunas levando em consideração os valores nulos? Preferencialmente algo que funcione nas visualizações de CDL.

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

Parece funcionar. Mas talvez existam opções melhores?

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

Olá Bart,

Um valor `null` em um banco de dados não é comparável, o que significa que cada operador de comparação retornará falso, exceto `nullField is null`.

Atenciosamente,
David

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

Em CAP Java , o operador CDS QL IS não tem a restrição mencionada anteriormente, mas pode comparar qualquer par de valores com semântica de comparação de dois valores.

Dado que o OData exige a comparação de dois valores, o CAP Java mapeia o operador OData eq para o operador CDS QL IS .

Como o HANA tem a restrição de que IS só pode comparar com NULL, no HANA a expressão CDS QL

a IS b 

se expande para

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

Se a ou b são conhecidos como nulos ou não nulos, simplificações são aplicadas.

No SQLite, o operador IS pode ser aplicado a qualquer valor no lado direito e o CAP Java o utiliza em conformidade.

A forma padrão do SQL de comparar dois valores é na verdade

a IS NOT DISTINCT FROM b

o que infelizmente não é compatível com o HANA. O CAP Java utiliza essa tradução no 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?