首页 > 解决方案 > 不同字段上的 SQL 案例,具有不同的数据可用性

问题描述

这是我在这里的第一个问题,我觉得这是一个愚蠢的问题,但我似乎无法做到这一点。

我有一个带有 4x 地址线 [Addr1]、[Addr2]、[Addr3]、[Addr4] 的表格。

我需要查询这些数据并将其重新排列为 2x 字段而不是 4 个字段,即 [City] 和 [Street]。这些 4x 字段从未在 UI 上正确或一致地完成,因此实际城市可能位于 Addr2、3 或 4 中。

现在我尝试了下面的代码,但我一定做错了什么,因为即使我在 Addr4 和 Addr3 中没有数据,我仍然没有在我的新 [City] 字段中获得 Addr2。我觉得答案一定很明显,但我还是个菜鸟,所以希望有人能帮助我吗?

        case when Addr4 = '' then Addr3
     when Addr4 = '' and Addr3 = '' then Addr2
     else Addr4
  end as City

标签: sql

解决方案


尝试这个

   select COALESCE(Addr4,Addr3,Addr2,Addr1) as City from table.
   -- or select NVL(Addr4,Addr3,Addr2,Addr1) as City from table.

可能是 Values are NULL not blank 。


推荐阅读