sql - 不同字段上的 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
解决方案
尝试这个
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 。
推荐阅读
- java - 如何从 cgo 返回的 C 字符串中释放 java 中的内存(使用 jna)?
- r - R中关于控制台与脚本的非常简单的问题
- javascript - 我必须在 jquery 按钮上单击两次才能提交注册表单
- java - JNDI 树:自定义工作管理器与默认工作管理器
- python - 函数没有打印出值
- python - 如何获取视频中的鱼总数
- qt - Qt 3D:缓动可用于动画吗?
- regex - 搜索并替换要使用的记事本正则表达式之一
- amazon-web-services - 我们可以使用 AWS 教育账户创建 S3 存储桶吗?
- django - 在 {% %} django 中使用 str()