1

У нас есть несколько таблиц с постоянными вычисленными столбцами в SQL Server.Терадатный эквивалент сохраняемого вычисленного столбца (в SQL Server)

Есть ли эквивалент этого в Teradata? И если да, то какой синтаксис и есть ли какие-то ограничения?

Конкретных вычисляемых столбцов Я смотрю на соответствие некоторых номеров счетов, удалив ведущие нули - индекс также создаются на этом сообразуйтесь номер счета:

ACCT_NUM_std AS ISNULL(CONVERT(varchar(39), 
           SUBSTRING(LTRIM(RTRIM([ACCT_NUM])), 
             PATINDEX('%[^0]%', 
                LTRIM(RTRIM([ACCT_NUM])) + '.' 
               ), 
             LEN(LTRIM(RTRIM([ACCT_NUM]))) 
             ) 
          ), 
         '' 
        ) PERSISTED 

С помощью функции Teradata TRIM, обрезков части будет немного проще:

ACCT_NUM_std AS COALESCE(CAST(TRIM(LEADING '0' FROM TRIM(BOTH FROM ACCT_NUM))) AS varchar(39)), 
         '' 
         ) 

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

+0

Я предполагаю, что есть причина, по которой вы не можете создать представление с «вычисленными данными» и источником из этого? – bogertron

+0

@bogertron действительно нужно индексировать, потому что некоторые вещи должны присоединяться к стандартизованному номеру учетной записи, а некоторые - нет. –

+0

Это хорошая причина :). Да, Teradata не поддерживает этот тип механизма. Следующий лучший вариант, я думаю, будет создавать триггеры или делать то, что вы сделали (воссоздать логику). Ничего элегантного – bogertron

ответ

0

Насколько я смог определить, Teradata не поддерживает вычисляемые столбцы в таблицах.

Я принял стратегию того, что все различные вставки используют, к сожалению, один и тот же код, что привело к дублированию кода.

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

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