2014-04-04 2 views
2

오라클에서 MSSQL으로 변환 중입니다. 오라클의 가이드를 B Supported SQL Syntax and Functions에서 읽었습니다.오라클 설명서 NOT NVL

NOT NVL 기능이 있고 MSSQL이 IS NOT NULL이라는 사실이 확인되었습니다.

3 열이있다 : 우리는 원 스톱 구문 자원 및 지원 기능을 가질 수 있도록 내 동료에 대한 목록을 컴파일하고있어

, 나는하지 NVL 작품과 같이 가정에서 수정입니다 , 이름, 위치, loves_marmite

앤드류 | 영국 |

하지 NVL 예 (loves_marmite, '아니'는)

그래서 표시되는 데이터는 다음과 같습니다

Andrew | UK | Nope 

난 그냥하지 않는이 오라클 기능 때와 같이 나열하는 이유 그것은 단지 논리적 인 문제 일 뿐이며, 오라클은 IS NULLIS NOT NULL입니다.

죄송합니다.이 문서를 동료에게 전달하기 전에 명확한 설명이 필요합니다.

편집 : 가능하면 두 플랫폼 간의 기능 및 구문 차이점에 대한 포괄적 인 목록이 있습니까?

답변

2

NVL2(param1, param2, param3)을 확인하십시오.

param1이 NOT (NULL or EMPTY STRING)이면 param2를 반환하고 param3을 반환합니다.

당신은 쓸 수 있습니다 : 또한

NVL2(loves_marmite, 'Nope', something_else) 

, 오라클에 널 (null) 관련 기능의 목록을 this answer를 참조

0

먼저 isNull 기능을 참조하십시오. 그러나 오라클은 NVL 기능을 사례로 대체하도록 사용자에게 알려주려고합니다.

SELECT CASE WHEN Foo IS NOT NULL THEN bar 
           ELSE BLA 
      END 
+0

예 나는 ISNULL 함수와 CASE 문 만의 문맥 알고 있어요 오라클의 가이드는 ISNULL이 아닙니다. 그게 이해할 수 있다면, 나는 왜 그것이 언급되었는지 모르겠다. 내가 만드는이 문서에 대한 설명을 찾고 있습니다. –

+0

제 생각으로 NVL()은 isNull()이 아니며 문자열을 사용하지 않는 것이 원하는 것이 아닙니다. 오라클에는 nvl2가 있지만 SQL은 IsNotNull이 없다는 것을 알고 있습니다. – borjab