감안할 때 테이블 :null 값을 포함하는 두 개의 열 값을 추가하는 SQL 쿼리?
ID ONE TWO X1 15 15 X2 10 - X3 - 20
이 쿼리 :
SELECT (ONE + TWO) FROM (TABLE)
그냥 적어도 하나의 열 때문에 X1
의 값이 아니라 다른 사람의 합계를 반환 null 값을 가지고 있습니다. null이 있어도 어떻게 추가 할 수 있습니까? 즉 0을 null로 간주할까요?
감안할 때 테이블 :null 값을 포함하는 두 개의 열 값을 추가하는 SQL 쿼리?
ID ONE TWO X1 15 15 X2 10 - X3 - 20
이 쿼리 :
SELECT (ONE + TWO) FROM (TABLE)
그냥 적어도 하나의 열 때문에 X1
의 값이 아니라 다른 사람의 합계를 반환 null 값을 가지고 있습니다. null이 있어도 어떻게 추가 할 수 있습니까? 즉 0을 null로 간주할까요?
SELECT (COALESCE(ONE, 0) + COALESCE(TWO, 0)) FROM (TABLE)
COALESCE
왼쪽부터 파라미터 검색된 제 널이 아닌 값을 반환한다. 첫 번째 필드가 null 때, 그것은 X2
이미 좋은 답변이 10 + 0 = 10
을 초래할 것이라고 0
그 방법을 취할 것입니다,하지만 난에 (가 antonpug에 가치가 언급 생각 사건이 일어나는 이유는 NULL이 비교되거나 합쳐질 수있는 가치가 아니라는 것입니다.
NULL은 0 또는 ''(빈 문자열)이 아니므로 NULL을 포함하는 모든 작업이 NULL을 (10 + NULL = NULL을)됩니다, 심지어 (NULL = NULL) FALSE
에 내가 알고 평가합니다. 감사! – antonpug
Oracle에서 빈 문자열은 NULL입니다. 이것은 표준 및 다른 RDBM과 다릅니다. 오라클에서는''null '이 true를 반환하는 이중에서'true '를 선택하고''= ' "'가 행을 반환하지 않는 이중에서'true '를 선택합니다. 이 때문에 연결 연산자'||'는 양쪽이 null 인 경우에만 null을 반환합니다. 'select null || 'Hello World!' from dual'은 "Hello World!"문자열을 제공합니다. –