Frage

Wir haben ein paar Tische mit persistenten berechneten Spalten in SQL Server.

Gibt es ein Äquivalent von dieser in Teradata? Und wenn ja, was ist die Syntax und gibt es irgendwelche Einschränkungen?

Die besonderen berechneten Spalten ich suche auf einige Kontonummern entsprechen, das von führenden Nullen zu entfernen - ein Index auch auf diesem angepasst Kontonummer erstellt wird:

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

Mit der Teradata TRIM-Funktion, der Trimm Teil wäre ein wenig einfacher:

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

Ich glaube, ich könnte nur eine normale Spalte dies machen und den Code setzen die Kontonummern in allen Prozessen zu standardisieren, die in die Tabelle einfügen. Wir taten dies die Standardisierung Code an einem Ort zu setzen.

War es hilfreich?

Lösung

Soweit ich feststellen Lage gewesen, Teradata unterstützt nicht berechnete Spalten in Tabellen.

verabschiedete ich die Strategie alle mit den verschiedenen Einsätzen den gleichen Code verwenden, die in Code-Duplizierung geführt hat, leider.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top