Преобразование символов из SAS в TERADATA - PullRequest
0 голосов
/ 27 мая 2020

Я недавно начал новую работу и использую инструменты, с которыми я не очень хорошо знаком. поэтому мне было интересно, может ли семейство StackOverFlow помочь мне. вот так, но тогда длина струны не согласуется с результатом в sas.

t1.COD_CZ|| cast(cast(t1.CODTC as int) as char(4))|| cast(t1.PROGOPE as char(8)) as CODIGO_MCT

Можете нежно просветить меня? заранее спасибо

1 Ответ

0 голосов
/ 27 мая 2020

Вы должны применить ФОРМАТ, чтобы получить начальные нули (конкатенация обрезает конечные пробелы):

t1.COD_CZ||Cast(t1.CODTC AS FORMAT '9(4)')||Cast(t1.PROGOPE AS FORMAT '9(8)')

Результат имеет фиксированную длину, но все равно VarChar (17). Если вам нужна фиксированная длина, например, для экспорта:

CAST(t1.COD_CZ||Cast(t1.CODTC AS FORMAT '9(4)')||Cast(t1.PROGOPE AS FORMAT '9(8)') AS CHAR(17))
...