Oracle SQL 处理 null value
时间:2014-04-11
来源:互联网
之前遇到一个问题, 个 table 有三个 columns: col1, col2 同 col3.
如果 col1 同 col2 都唔系 null, 就出 col1, 否则出 col3.
我心目中其实有几个答案, 但都想知大家会点写.
谢谢.
作者: tripleooo 发布时间: 2014-04-11
作者: a8d7e8 发布时间: 2014-04-11
select
case when c1 is null and c2 is null then c3
else c1
end
from XXX
作者: tripleooo 发布时间: 2014-04-11
我放上来就系想知会唔会有第四种写法.
作者: tripleooo 发布时间: 2014-04-11
上面系我遇到这个问题时第一个想到的 solution, 跟住有一个同事想到另一个方法写, 最后再有一个同事想到多一种写法。
我放上来就系想知会唔会有第四种写法.
我宁愿加多一个 field (如 boolean 或 tinyint 等)来代替是否 null 。
这样操作上应该灵活得多。
作者: xianrenb 发布时间: 2014-04-11
上面系我遇到这个问题时第一个想到的 solution, 跟住有一个同事想到另一个方法写, 最后再有一个同事想到多一种写法。
我放上来就系想知会唔会有第四种写法.
作者: a8d7e8 发布时间: 2014-04-11
平日写开 Oracle SQL 都会用 nvl, nvl2, coalesce 来处理 null value.
之前遇到一个问题, 个 table 有三个 columns: col1, col2 同 col3.
如果 col1 同 col2 都唔系 null, 就出 col1, 否则出 col3.
我心目中其 ...
这是我遇到这个问题时的第一个想到的写法
select
case when c1 is null and c2 is null then c3
else c1
end
from XXX
如果c1系null c2唔系呢,你顶楼原意系要出c3,但条SQL出c1了

作者: skww 发布时间: 2014-04-11
如果 c1 或 c2 唔系 null, 就出 c1, 否则出 c3.我都写番我同其它同事谂到的 solution.Solution 2: select nvl2(c1, c1, nvl2(c2, c1, c3) from XXXSolution 3: select decode(c1, null, decode(c2, null, c3, c1), c1) from XXXSolution 4: select nvl2(c1||c2, c1, c3) from XXX我估唔到问下d 同事, 竟然出了四个答案咁多. 开始明白集思广益的重要. 所以想知大家会唔会有第五个 solution.
作者: tripleooo 发布时间: 2014-04-11
原来写错了条问题. 应该系:
如果 c1 或 c2 唔系 null, 就出 c1, 否则出 c3.我都写番我同其它同事谂到的 solution.Solution 2: select nvl2(c1, c1, nvl2(c2, c1, c3) from XXXSolution 3: select decode(c1, null, ...
作者: a8d7e8 发布时间: 2014-04-11
原来写错了条问题. 应该系:
如果 c1 或 c2 唔系 null, 就出 c1, 否则出 c3.我都写番我同其它同事谂到的 solution.Solution 2: select nvl2(c1, c1, nvl2(c2, c1, c3) from XXXSolution 3: select decode(c1, null, ...
作者: leonleon622 发布时间: 2014-04-11
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28