如何在Oracle数据库查询中为没有数据的字段赋值为NULL
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Oracle数据库查询中为没有数据的字段赋值为NULL相关的知识,希望对你有一定的参考价值。
问题解释:在查询数据时,根据某个条件查询数据时,查询的结果是0条数据,但是希望在这个条件基础上,查询某个字段时,如果没有数据,就显示为空。请教SQL语句如何写?
参考技术A update 表 set 字段='***' where *** is null 参考技术B 没有数据的字段赋值为NULL ?不是很理解你的需求。
我举个例子吧
例如有个 成绩表 ( 学生, 课程, 成绩)
有如下数据
张三 英语 100
李四 英语 80
王五 英语 60
赵六 英语 0
你是不是想
SELECT * FROM 成绩表 WHERE 学生 = '赵六' 的时候,
得到的结果是:
赵六 英语 NULL
这样?
如果是的话
SELECT
学生, 课程, DECODE( 成绩, 0, NULL, 成绩) AS 成绩
FROM
成绩表
WHERE
学生 = '赵六'
注:
DECODE( 成绩, 0, NULL, 成绩)
相当于
CASE WHEN 成绩 = 0 THEN NULL
ELSE 成绩 END
也就是 如果成绩为0,那么返回 NULL, 否则就返回成绩。 参考技术C 如果返回结果是0条记录,无法显示空值。有问题直接说出来,或许通过别的方法能够解决。本回答被提问者采纳
如何查询oracle数据库表字段
参考技术A 这里涉及到两个系统视图的应用dba_tab_cols和user_tab_cols;dba_tab_cols包含所有用户下表字段信息;user_tab_cols包含当前用户下表信息;使用tba_tab_clos查询表字段类型需要指定owner(用户)
上述两个表中,table_name,column_name,data_type就可以满足需要查询表字段类型了,具体类型对应其他字段还有另外定义,比如varchar2,date,number还对应在data_length字段有值,说明类型其长度
user_tab_columns和user_tab_cols都可以满足问题要求,但是两张视图还是有区别的,主要是包含字段的区别等,具体区别可以度娘哈,这里就不赘述。
以上是关于如何在Oracle数据库查询中为没有数据的字段赋值为NULL的主要内容,如果未能解决你的问题,请参考以下文章