SELECT nvl(nulltest, '' ) FROM testtable limit 1
SELECT nvl(nulltest, '' ) FROM testtable limit 2
SELECT nvl(nulltest, '' ) FROM testtable limit 10
만약 testtable에 nulltest 란 필드가 모두 null 일때
이걸 ADO로 읽어들이려고 시도하면 그냥 읽으면 에러가 떨어집니다.
그래서 nvl로 변환한건데..
이 결과치는 모두
"" 으로 얻기를 원했는데, 실제 해 보면 첫번째 레코드만 "" 이고 나머지는 null 이 리턴됩니다.
신기하죠.
nvl이 첫번쨰 리턴되는 레코드에만 영향을 주나 봅니다.
그런데, 이걸 '' 대신 '1' 식으로 하면 다 먹던데.. 몬 조환지..
--------------------------------------------------------------------------
- 구문
-
NVL (expression1, expression2)
- 설명
-
널값을 다른 수나 캐릭터로 변환하여 사용한다. 사용되는 데이터타입은 DATE, CHAR 및 NUMBER이다. 표현식의 데이터 유형이 일치해야 한다.
- 예제
-
<질의> 사원의 이름과 급여를 출력한다. 급여 데이터가 없을 경우 'NOT'을 출력하라.
iSQL> SELECT ENAME, NVL(TO_CHAR(SALARY), 'NOT')
FROM EMPLOYEE;
<결과>
ENAME NVL(TO_CHAR(SALARY), 'NOT')
------------------------------------------------
SWNO NOT
HJNO 1500000
HSCHOI 2000000
…
20 rows selected.
|