SUM特定数据类型的所有列,而不是按名称调用每列

时间:2015-05-20 18:37:14

标签: sql sql-server sql-server-2008

我想得到十进制类型的所有列的总和,按唯一ID字段分组。是否有更简单的方法来汇总所有列而不是列出每个列名?也许是按数据类型,因为列都具有相同的类型(十进制(18,4))?

这就是我现在正在做的事情:

SUM(
ISNULL(TABLEA.aaa,0)+
ISNULL(TABLEB.bbb,0)+
ISNULL(TABLEC.ccc,0)+

) AS TOTAL

等,无限广告

1 个答案:

答案 0 :(得分:0)

这并不意味着是一个动态SQL解决方案,而是节省时间。针对您感兴趣的表运行此操作,将结果复制回查询窗口,并使用一些mod删除最后一个加号,使其正常工作。

Select 'isnull(' + Column_Name + ',0)+'
From information_schema.columns
Where TABLE_NAME = 'myTable'
and data_type = 'int'