запросы oracle9i - PullRequest
       11

запросы oracle9i

0 голосов
/ 03 мая 2009

У меня есть таблица оракула, состоящая из 6 столбцов, из которых один является столбцом даты. Поле даты содержит пустые записи в некоторых строках ... никакое другое поле не является пустым. Могу ли я удалить строки, имеющие поле даты как ноль? или я должен обновить какое-то значение в поле даты для этих строк ...?

Пожалуйста, предоставьте мне правильный способ выполнить обе эти операции?

спасибо ....

Ответы [ 3 ]

2 голосов
/ 03 мая 2009

Если вам нужно сохранить другие значения в строке, вы можете указать значение по умолчанию для даты в запросе с помощью:

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

Для обновления нулевых значений в таблице используйте;

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

Чтобы удалить пустые строки;

DELETE FROM dataTable
WHERE dateCol IS NULL
1 голос
/ 03 мая 2009

удалить из table_name где date_field равен нулю;

0 голосов
/ 03 мая 2009

Правильные ответы уже даны. Я только добавляю немного объяснения здесь. Сравнение с использованием оператора равенства (=) и NULL всегда дает NULL, а не TRUE. Вот почему вы должны использовать «IS NULL» вместо «= NULL». Вот часть документации, которая обсуждает NULLS: 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.

С уважением, Роб.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...