【发布时间】:2017-07-10 02:18:10
【问题描述】:
所以我有 100 个具有值的列,我需要对 teradata 中的每一行进行汇总。有没有一种方法可以汇总所有内容,而无需输入每个列名?
我希望结果是
SELECT CustID,(Col1+Col2+Col3+Col4+.....................Col100)
FROM CustomerTable
我可以在不输入列名的情况下执行此操作吗?我知道 * 将对所有行求和。同样,有没有一种方法可以对同一行的每一列中的值求和?
【问题讨论】:
-
您的要求表明设计不佳。
-
不。在 SQL 中,您必须输入要求和的内容。您可以...为该表/数据库表创建一个从
dbc.columns中选择的proc,打开一个游标,遍历记录并使用结果构建动态SQL 语句,然后执行它。但是......这可能比仅仅编写一个快速的 sql 语句来总结 100 列要困难 1000 倍。 -
另外,当我遇到这样的繁琐任务时,我只需将列名转储到记事本中,然后查找逗号并将其替换为加号。工作量不大。
-
我知道这是糟糕的设计。已通知数据库管理员。但我仍然需要把报告拿出来。记事本选项听起来是目前最简单的选项。谢谢你们:-)
标签: sql sum multiple-columns teradata