sql - 如何将列合二为一,并过滤掉 NULL?
问题描述
这是我的桌子。在通讯、报告、信息图表列中包含注册日期的 ID 列表。
我想将所有这些列合并为一个,没有 NULL
我试过下面的代码
SELECT id, combined_column
FROM (
SELECT id, CONCAT(newsletter, report, infographics) AS combined_column
FROM table
)
WHERE combined_column IS NOT NULL
但这只是给了我一张空白表。有没有办法解决这个问题?谢谢
解决方案
我想你想要coalesce
从列表中返回第一个非空值(如果你连续有多个非空值,它仍然会返回第一个):
SELECT id, COALESCE(newsletter, report, infographics) AS combined_date
FROM t
WHERE COALESCE(newsletter, report, infographics) IS NOT NULL
推荐阅读
- python - Keras 功能 API 嵌入层输出到 LSTM
- asp.net-core - 如何知道我最初选择了哪个项目模板?
- python - 如何在python中暂停和恢复工作人员QThread?
- python - 需要澄清 svm.LinearSVC 中的“惩罚”参数
- node.js - 无法运行节点 js 项目出现以下错误
- postgresql - 我需要将两列 (A1 * B1) 和 B2 处的答案相乘,然后将 A2 值 * B2 值相乘
- javascript - 在 Mozilla Firefox 中使用 showModal() 方法
- ios - react-naitve xcode build main.jsbundle no such file error after watchman lost connected log
- python - 如何使用 pygame(如 T-rex 游戏)创建多个横向移动的精灵对象
- sql-server - 在多值字符串中搜索的最佳方法