2009-05-03 6 views
0

Ich habe eine Oracle-Tabelle, bestehend aus 6 Spalten, von denen eine Datumsspalte ist. Das Datum Feld hat Null Einträge in einigen Zeilen ... kein anderes Feld ist null .. Kann ich die Zeilen mit Datum Feld als Null löschen? oder sollte ich einen Wert im Datumsfeld für diese Zeilen aktualisieren ...?oracle9i Abfragen

Bitte geben Sie mir den richtigen Weg, um diese beiden Operationen zu tun?

Dank ....

Antwort

2

Wenn Sie die anderen Werte in der Zeile beibehalten müssen, können Sie einen Standardwert für das Datum in einer Abfrage mit angeben;

SELECT NVL(dateCol, to_date('31/01/2009','dd/MM/yyyy')) FROM dataTable 

Um die Nullwerte in der Tabelle Verwendung zu aktualisieren;

UPDATE dataTable 
SET dateCol = to_date('31/01/2009','dd/MM/yyyy') 
WHERE dateCol IS NULL 

Um die Nullzeilen zu entfernen;

DELETE FROM dataTable 
WHERE dateCol IS NULL 
1

aus table_name löschen wo DATE_FIELD null ist;

0

Richtige Antworten wurden bereits gegeben. Ich füge nur ein bisschen Erklärung hier hinzu. Vergleichen mit dem Gleichheitsoperator (=) und NULL gibt immer NULL, nie TRUE. Deshalb müssen Sie "IS NULL" anstelle von "= NULL" verwenden. Hier ist der Teil der Dokumentation, die NULLS diskutiert: http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/sql_elements005.htm#i59110

Ein Beispiel:

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. 

Grüße, Rob.