将单个case语句应用于sql中的所有列

时间:2014-11-19 12:45:15

标签: sql oracle

我需要获得表格中每列的总和。所以我使用了select sum(col1),col2等。

如果总和为空,我需要得到0,否则求和的值。因此,我使用"选择sum(col1)为null时的情况,然后为0,否则sum(col1)以sum_col1"结束。

我的表中有大约40个这样的列。我需要写"总和(col n)然后......"在我的查询中40次?

我正在研究oracle 9 g。 感谢

1 个答案:

答案 0 :(得分:2)

  

我的表中有大约40个这样的列。我需要写“案例   当sum(col n)然后......“我的查询中有40次?

简短回答:是的。

更长的答案:您可以使用某种动态SQL从列元数据中自动生成语句。但它可能不值得麻烦,因为您通常可以轻松地在查询编辑器中复制粘贴语句。考虑到所有事情,有一个需要总和的40列表,表明数据模型设计不好。使用设计糟糕的数据模型时,您需要在查询时支付价格......