Mysql按相反顺序选择列,忽略空值
我有这样一个数据集: 我想忽略空值,按相反顺序选择这些列Mysql按相反顺序选择列,忽略空值,mysql,Mysql,我有这样一个数据集: 我想忽略空值,按相反顺序选择这些列 col1 col2 col3 col4 1 2 3 null 1 4 null null 1 3 5 null 1 null null null 我想把它选进这个: col1 col2 col3 col4 3 2 1 null 4 1 null null 5 3 1 null 1 null null null 对于大量的
col1 col2 col3 col4
1 2 3 null
1 4 null null
1 3 5 null
1 null null null
我想把它选进这个:
col1 col2 col3 col4
3 2 1 null
4 1 null null
5 3 1 null
1 null null null
对于大量的列,有没有一个好方法可以做到这一点?您可以使用COALESCE()
函数,并使用不同的列别名或名称以相反的顺序选择列
select coalesce(col3, 0) as col1,
coalesce(col2, 0) as col2,
coalesce(col1, 0) as col3,
col4
from your_table;
对于任何数量的列,都没有一种“好”的方法可以做到这一点。正如我在上一个问题中告诉您的,如果您有大量这样的列,那么您的数据库设计是错误的。它们应该在单独的行中,然后您可以编写不需要对每一列重复所有内容的查询。