2017-02-20 51 views
0

Итак, у меня есть 100 столбцов, которые имеют значения, и мне нужно суммировать их для каждой строки в teradata. Есть ли способ, которым я могу рассчитать все, без необходимости вводить имя каждого столбца?Teradata: суммирование значений столбцов по строкам без ввода имени столбца

Я хочу, что результаты будут

SELECT CustID,(Col1+Col2+Col3+Col4+.....................Col100) 

FROM CustomerTable 

Могу ли я сделать это без ввода имен столбцов. Я знаю, что * суммирует все строки. Точно также существует способ, которым я могу суммировать значения в каждом столбце одной и той же строки?

+1

Вы запрос является признаком плохого дизайна. –

+0

Nope. В SQL вы должны ввести то, что хотите суммировать. Вы можете ... создать прок, который выбирает из 'dbc.columns' для этой таблицы таблицы/базы данных, открывать курсор, прокручивать записи и строить динамическую инструкцию SQL с использованием результатов, а затем выполнять ее. Но ... это, вероятно, будет в 1000 раз сложнее, чем просто написать быстрый оператор sql для суммирования 100 столбцов. – JNevill

+0

Кроме того, когда я застрял в такой утомительной задаче, я просто сбрасываю имя столбца в Блокнот и нахожу и заменяю запятую на плюсы. Это не так много работы. – JNevill

ответ

0

Это может облегчить вам работу

select  '+ ' || columnname 

from  dbc.columnsv 

where  databasename = '{your database}' 
     and tablename  = '{your table}' 
     and columnname  not in ('CustID',...,...) 

order by columnid   

 Смежные вопросы

  • Нет связанных вопросов^_^