2017-10-10 1 views
-2

orther 언어 (C#, Sql Server)에서 1 + null 또는 '1'+ null이 null이지만 Oracle 결과는 1 || null = 1이지만 '1'+ null = null. 예 :오라클에 플러스 값 null

select 1 || null from dual ; 
select '1' + null from dual; 

이 결과 : 1, 널 (null)

말해 왜 할 수 있습니까?

+0

"하지만 Oracle 결과는 1 || 널입니다 null"아니요 – APC

+0

감사합니다. 나는 편집 중이다 –

답변

4

오라클은 NULL을 처리하고 빈 문자열은 the same thing으로 처리합니다.

따라서 은 입니다 (이것은 논리합이 아닌 SQL의 문자열 연결입니다).

+의 경우 두 인수는 모두 숫자로 변환되고 NULL을 포함한 산술 연산은 NULL이됩니다.

+1

하지만 왜 : null = '', 그 다음에는 1 else 두 개의 끝에서 선택; 0입니까? null가되어 ""같은 경우는 1입니까? –

+1

@ NguoiTotbung - 같은 이유로'null = null'은 거짓입니다 : NULL은 ** 아무 것도 **와 동등하지 않습니다. 그래서 SQL 언어에는 is is null 연산자가 있습니다 (SQL Server에도이 연산자가 있습니다). – APC