database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ㆍALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
ALTIBASE Q&A 109 게시물 읽기
No. 109
이상한 현상.. 원래 이건가요?
작성자
골빈당
작성일
2007-12-25 11:17
조회수
9,312

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.              
              
이 글에 대한 댓글이 총 2건 있습니다.

알티베이스는 ''를 NULL로 인식 합니다. 

오라클도 null 관련된 연산자는 is null 혹은  is not null만 가능합니다.

심상범(shimgoon)님이 2008-02-11 14:57에 작성한 댓글입니다.
이 댓글은 2008-02-11 20:21에 마지막으로 수정되었습니다.
iSQL> create table b ( c1 integer, c2 integer,c3 integer);
Create success.
iSQL> insert into b values(1,null,null);
1 row inserted.
iSQL> insert into b values(1,null,null);
1 row inserted.
iSQL> insert into b values(null,null,null);
1 row inserted.
iSQL>
iSQL> select * from (select nvl (c1,'') d from b);
D          
--------------
1          
1          
           
3 rows selected.
iSQL> select * from (select nvl (c1,'') d from b) where d is null;
D          
--------------
           
1 row selected.
iSQL>
심상범(shimgoon)님이 2008-02-11 15:03에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
112알티베이스 precompile에 unsafe_null기능은 없나요? [1]
러스스누피
2008-03-04
7829
111iloder 구분자 없애기요 [1]
초보
2008-02-11
7304
110iloader 문자열 자르기 [2]
이재광
2008-01-31
8307
109이상한 현상.. 원래 이건가요? [2]
골빈당
2007-12-25
9312
108[질문] sync 중인 테이블의 수정이 가능할까요? [1]
골빈당
2007-12-20
7736
107Altibase에서 PERCENTILE_DISC는 어떻게? [1]
골빈당
2007-12-16
7154
106[질문] 좀 엉한데, 테이블 변경 여부 감지.. [1]
골빈당
2007-11-14
7077
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.046초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다