zero padding in teradata sql
Tabela A
Id varchar (30)
Por exemplo, se a identificação for do comprimento 6, vou precisar de sair com 3 zeros principais. O comprimento real pode ser qualquer coisa que varie de 1 a 9.
alguma ideia de como implementar isto na Teradata SQL?
2
Author: user3634687, 2014-05-14
1 answers
Se o comprimento real é de 1 a 9 caracteres, porque é que a coluna é definida como VarCar(30)?
Se fosse uma coluna numérica seria fácil:
CAST(CAST(numeric_col AS FORMAT '9(9)') AS CHAR(9))
Para as cadeias de caracteres não existe um formato como este, mas dependendo da sua libertação poderá ter uma função LPAD:
LPAD(string_col, 9, '0')
Caso contrário, é:
SUBSTRING('000000000' FROM CHAR_LENGTH(string_col)+1) || string_col,
Se houver mais de nove caracteres, todos os cálculos anteriores Irão devolvê-los.
Se quiser truncar (ou um CHAR em vez de um resultado VARCHAR) tem de adicionar uma final CAST AS CHAR(9)
TRIM(string_col)
9
Author: dnoeth, 2014-05-14 06:15:13