[英]SQL: How do I combine columns into one, and filter out NULLs?
你只想要这个吗?
select max(newsletter) as newsletter,
max(report) as report,
max(infographics) as infographics
from t;
答案可能取决于您使用的数据库,因此请注意。
是否像您的示例中只有一列为非空?
然后是这样的:
SELECT id, COALESCE(newsletter, infographics, report) FROM my_table;
可能对您有用...
如果使用的是Oracle,请使用NVL
将NULL
替换为空字符串
SELECT id,
combined_column
FROM (
SELECT id,
CONCAT(NVL(newsletter,''), NVL(report,''), NVL(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
SELECT ID,CONCAT(新闻稿,报告,信息图表)作为组合表的组合FROM表格WHERE新闻不为空且报告不为空且信息图表不为空
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.