6 개의 컬럼으로 구성된 Oracle 테이블을 가지며 그 중 하나가 날짜 컬럼입니다. 날짜 필드의 일부 행에 null 항목이 있습니다 ... 다른 필드가 null이 아닙니다. 날짜 필드가 null 인 행을 삭제할 수 있습니까? 또는 해당 행의 날짜 필드에서 일부 값을 업데이트해야합니까?oracle9i 쿼리
이 두 가지 작업을 수행하는 올바른 방법을 알려주십시오. DATE_FIELD가 null 테이블 _ 에서 삭제
6 개의 컬럼으로 구성된 Oracle 테이블을 가지며 그 중 하나가 날짜 컬럼입니다. 날짜 필드의 일부 행에 null 항목이 있습니다 ... 다른 필드가 null이 아닙니다. 날짜 필드가 null 인 행을 삭제할 수 있습니까? 또는 해당 행의 날짜 필드에서 일부 값을 업데이트해야합니까?oracle9i 쿼리
이 두 가지 작업을 수행하는 올바른 방법을 알려주십시오. DATE_FIELD가 null 테이블 _ 에서 삭제
행의 다른 값을 유지해야하는 경우 쿼리의 날짜에 대한 기본값을 제공 할 수 있습니다.
SELECT NVL(dateCol, to_date('31/01/2009','dd/MM/yyyy')) FROM dataTable
테이블의 null 값을 업데이트하려면;
UPDATE dataTable
SET dateCol = to_date('31/01/2009','dd/MM/yyyy')
WHERE dateCol IS NULL
null 행을 제거하려면;
DELETE FROM dataTable
WHERE dateCol IS NULL
감사 ....;
정답은 이미 주어졌습니다. 여기에 약간의 설명 만 추가하고 있습니다. 항등 연산자 (=)와 NULL을 사용하여 비교하는 것은 항상 NULL을 제공하고 TRUE가 아닙니다. 그래서 "= NULL"대신 "IS NULL"을 사용해야합니다. http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/sql_elements005.htm#i59110
예 :
SQL> create table mytable (col1,col2,col3,col4,col5,datecol)
2 as
3 select 1,1,1,1,1,sysdate from dual union all
4 select 2,2,2,2,2,null from dual union all
5 select 3,3,3,3,3,null from dual
6/
Tabel is aangemaakt.
SQL> delete mytable
2 where datecol = null
3/
0 rijen zijn verwijderd.
SQL> select * from mytable
2/
COL1 COL2 COL3 COL4 COL5 DATECOL
----- ----- ----- ----- ----- -------------------
1 1 1 1 1 03-05-2009 11:36:08
2 2 2 2 2
3 3 3 3 3
3 rijen zijn geselecteerd.
SQL> delete mytable
2 where datecol is null
3/
2 rijen zijn verwijderd.
SQL> select * from mytable
2/
COL1 COL2 COL3 COL4 COL5 DATECOL
----- ----- ----- ----- ----- -------------------
1 1 1 1 1 03-05-2009 11:36:08
1 rij is geselecteerd.
감사 롭 NULLS 여기서 설명 문서의 일부이다.