首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oracle9i查询

oracle9i查询
EN

Stack Overflow用户
提问于 2009-05-03 04:55:18
回答 3查看 263关注 0票数 0

我有一个包含6列的oracle表,其中一列是date列。日期字段在某些rows...no中有null条目,其他字段为null。日期字段为空的行是否可以删除?或者我是否应该在日期字段中为这些行更新一些值...?

请告诉我做这两个操作的正确方法?

谢谢……

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-03 09:05:46

如果需要保留行中的其他值,可以为查询中的日期提供默认值;

代码语言:javascript
复制
SELECT NVL(dateCol, to_date('31/01/2009','dd/MM/yyyy')) FROM dataTable

要更新表中的空值,请使用;

代码语言:javascript
复制
UPDATE dataTable
SET dateCol = to_date('31/01/2009','dd/MM/yyyy') 
WHERE dateCol IS NULL

删除空行;

代码语言:javascript
复制
DELETE FROM dataTable
WHERE dateCol IS NULL
票数 2
EN

Stack Overflow用户

发布于 2009-05-03 05:05:56

从date_field为空的table_name中删除;

票数 1
EN

Stack Overflow用户

发布于 2009-05-03 09:42:40

已经给出了正确的答案。我只是在这里补充一点解释。使用相等运算符(=)和NULL进行比较总是得到NULL,而不是TRUE。这就是为什么你必须使用"IS NULL“而不是"= NULL”。下面是文档中讨论NULLS的部分:http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/sql_elements005.htm#i59110

举个例子:

代码语言:javascript
复制
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.

问候你,罗伯。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/816365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档