source

Oracle SQL 구문 - 여러 열에서 ISNOT NULL을 확인합니다.

factcode 2023. 7. 23. 14:44
반응형

Oracle SQL 구문 - 여러 열에서 ISNOT NULL을 확인합니다.

여러 열이 null이 아닌지 확인할 수 있는 더 간결한 구문이 있습니까?단순화를 모색하고 있습니다.

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

더 짧은 것으로.

관련이 있는 경우 Oracle을 사용합니다.

모건의 법칙으로:

NOT (A 또는 B) = (A 아님) 및 (B 아님)

당신은 20자를 절약합니다 ;)

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 
)

제가 알기로는 그런 구문은 없습니다.

그러나 모든 숫자가 숫자인 경우 다음과 같은 방법을 사용할 수 있습니다.

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
            );

모든 열이 NULL이 아닌지 확인하려면 먼저 열을 연결한 다음 ISNULL이 아닌지 한 번 테스트할 수 있습니다. 예:

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

이렇게 하면 해당 필드의 모든 값이 총 NULL이 아닌지 확인합니다.

만약 그들 중에 NULL이 있을 수 있는지 여부를 테스트하는 것뿐이라면, 저는 질문에서 나온 당신의 원래 진술이 여전히 그것을 하는 가장 좋은 방법이라고 생각합니다.

저는 이 문제를 해결하려고 노력했습니다. 만약 모든 열/변수가 숫자 또는 varchar2 유형이라면 sql, pl/sql에서 다음 방법을 사용할 수 있습니다.

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

이것이 당신에게 도움이 되기를 바랍니다.

이 ......결합(필드1,필드2,......필드n)이 null이 아닙니다.

저는 이것이 목적에 부합할 것이라고 생각합니다!!!!

언급URL : https://stackoverflow.com/questions/8596004/oracle-sql-syntax-check-multiple-columns-for-is-not-null

반응형