Oracle 给查出的空值(NULL) 赋值

  • Post author:
  • Post category:其他



最近做数据迁移工作,某个字段在源表中可为空,在目标表中不能为空。迁移数据的时候需要给查出的空值赋一个默认值。




用到的函数为:


NVL(expr1,expr2)

expr1:可为空的字段或者表达式。

expr2:null的替代值。



含义:如果表达式 expr1 为空(NULL),则显示表达式 expr2 的值,若非空,则显示expr1 的值。


select parentid,NVL(parentid,999) from PROPERTYRELATION  (下图第一列是原始数据,第二列是转化后的数据,本例中该字段是数据。若为字符串,则999需要加上单引号,’999′)


类似的函数有:



NVL2(expr1,expr2, expr3)



含义:若第一个参数为空,则显示二个参数的值;若第一个参数不为空,则显示第三个参数的值。





NULLIF(exp1,expr2)



含义:如果第一个参数和第二个参数相等,则显示空;否则显示第一个参数的值。




COALESCE (expression_1, expression_2, …,expression_n)


含义:

依次参考各参数表达式,遇到非null值即停止并显示该值。如果所有的表达式都是空值,最终将显示一个空值。



版权声明:本文为shuaishifu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。