【发布时间】:2012-07-02 18:56:01
【问题描述】:
我有一个包含很多列的表,其中一些列的名称以“EQ”开头。对于单个行,我想对以“EQ”开头的列中的所有值求和,而不是其他值。我知道我可以这样做:
select EQ_DOMESTIC + EQ_INTL + EQ_OTHER from myTable where id=1
但是,我有很多列,我想知道是否可以系统地进行操作,而无需输入每列的名称。我是否必须在另一个查询中从系统表中获取列名?
后续问题:有些值是空值,这使得总和为空。有什么办法可以避免在总和中写出 ISNULL(column,0)?
【问题讨论】:
-
想不出一个,你需要为每一列写出 isnull(columnname, 0) 而不仅仅是包含的总和。
标签: sql sql-server sql-server-2008