我有一个场景,我只需要显示非零列
id C1 C2 C3 C4
1 0 1 0 2
2 0 1 0 5
3 0 9 0 3
我希望输出如下
id C2 C4
1 1 2
2 1 5
3 9 3
答案 0 :(得分:0)
SQL查询始终会生成以前的已知列。所以你不能在纯SQL中做你想做的事情。 (而且只能用SQL做一些事情往往是数据库设计不佳的标志。但有时候,SQL是关于如何获取数据,而不是如何显示数据。)
您可以做的是在一个查询中获取列的总和,然后动态地(手动或在使用Java,PHP或任何编程语言的应用程序中)构建新查询,该查询仅选择非零列。 / p>