最近项目中,当写查询语句的时候我们会遇到在查询时就要判断某个字段取出来是否为空,为空与不为空要返回成不同的值的问题,特意查询了oracle与sqlserver的不同写法。
oracle:
NVL(Expr1,Expr2)如果Expr1为NULL,返回Expr2的值,否则返回Expr1的值 NVL2(Expr1,Expr2,Expr3)如果Expr1为NULL,返回Expr2的值,否则返回Expr3的值 NULLIF(Expr1,Expr2)如果Expr1和Expr2的值相等,返回NULL,否则返回Expr1的值
sqlserver:
isnull(cloumn,expr)如果字段cloumn为空则值变为expr。