SQL基础如果列A不为空,则在列B上使用

时间:2017-03-30 16:10:11

标签: sql

大家好,刚刚开始使用SQL。想问一下。 例如,如果给出:

enter image description here

结果:

enter image description here

说明:

  • 如果B列不为空,请使用E列中的B列
  • 如果B列为空,则使用E列中的D列
  • 如果B列和D列为空,则将E列留空

你如何在SQL中完成这项工作?

3 个答案:

答案 0 :(得分:0)

您可以尝试使用case语句,如下所示: select case b不为null然后e = b else case d不为null然后e = d else e = null end end

答案 1 :(得分:0)

您可以使用" case",如下一个查询:

select t.colA, t.colB, t.colC, t.colD, 
       (case when t.colB is null and t.colD is null then null end
       else case when t.colB is not null then t.colB end end
       else t.colD end) colE 
from tabela t

答案 2 :(得分:0)

我建议使用Coalesce,如Siyual的评论所述:

select t.ColA
      ,t.ColB
      ,t.ColC
      ,t.ColD
      ,Coalesce(t.ColB, t.ColD) as ColE
from table t