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)),
''
)
これを通常の列にして、テーブルに挿入するすべてのプロセスで口座番号を標準化するコードを配置するだけでよいと思います。これは、標準化コードを 1 か所にまとめるためです。