Sintaxis de SQL de Oracle: compruebe varias columnas para NO ES NULO

¿Hay una syntax más concisa para verificar si las columnas múltiples no son nulas? Estoy buscando simplificar

weight IS NOT NULL AND weight_unit IS NOT NULL AND length IS NOT NULL AND width IS NOT NULL AND height IS NOT NULL AND dimensional_unit IS NOT NULL 

en algo más corto.

Usando Oracle, si es relevante.

Con la ley de De Morgan :

NO (A O B) = (NO A) Y (NO B)

guarda 20 caracteres;)

 NOT ( weight IS NULL OR weight_unit IS NULL OR length IS NULL OR width IS NULL OR height IS NULL OR dimensional_unit IS NULL ) 

Hasta donde yo sé, no hay tal syntax.

Pero si todos son numéricos, puedes usar este truco:

 weight + weight_unit + length + width + height + dimensional_unit is not null 
 ALTER TABLE X ADD CONSTRAINT C_X_NN CHECK ( ( DECODE (weight, NULL, 0, 1) + DECODE (weight_unit, NULL, 0, 1) + DECODE (length , NULL, 0, 1) + DECODE (width , NULL, 0, 1) + DECODE (height , NULL, 0, 1) + DECODE (dimensional_unit , NULL, 0, 1) ) = 0 ); 

Si desea verificar si TODAS las columnas NO SON NULAS, primero puede Concatenar sus columnas y luego probar una vez para NO ES NULO, por ejemplo:

 weight || weight_unit || length || width || height || dimensional_unit IS NOT NULL 

Esto verificará si todos los valores juntos en esos campos no llegan a un total de NULL.

Si solo estoy probando si puede haber un NULL entre ellos, entonces creo que su statement original de la pregunta sigue siendo la mejor manera de hacerlo.

Traté de resolver este problema, si todas las columnas / variables son de tipo numérico o varchar2, podemos usar el siguiente método en sql, pl / sql:

 LENGTH(COL1||COL2||COL3) IS NOT NULL 

Espero que esto te ayudará.

¿Qué tal esto ….. coalesce (campo1, campo2, …., campon) no es nulo

¡Creo que esto serviría para el propósito!