Teradata的等效持久化计算列(在SQL Server)
-
18-09-2019 - |
题
我们有持久化计算列的几桌在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)),
''
)
我想我可能只是使这个普通列,并把代码中所有插入到表的过程,以规范账户号码。我们这样做是为了把标准化的代码在一个地方。
解决方案
据我已经能够确定,Teradata的不支持计算列在表中。
我采用具有所有的各种插入件使用相同的代码,这导致在代码重复的策略,可惜。
不隶属于 StackOverflow