1

我们在 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)),
                         ''
                        )

我想我可以把它变成一个普通的列,并在插入表格的所有进程中放入代码来标准化帐号。我们这样做是为了将标准化代码放在一个地方。

4

1 回答 1

0

据我所知,Teradata 不支持表中的计算列。

我采用了让所有不同的插入使用相同的代码的策略,不幸的是,这导致了代码重复。

于 2010-03-19T17:19:03.890 回答