2016-12-19 5 views
2

MS SQL Server 코드를 Teradata로 변환 중입니다. Teradata에 복제 기능이 없다는 것을 알았습니다. 다음 샘플 코드Teradata REPLICATE 기능?

REPLICATE('0',2-LEN(CAST(COLUMN_NAME AS NVARCHAR))) 

은 테라 데이타의 복제에 대한 대체 기능이 있나요입니까?

감사

+0

비슷하게 사용할 수있는'LPAD' /'RPAD'가 있습니다. 그러나이 코드는 실제로 어떤 데이터 유형이 'COLUMN_NAME'입니까? – dnoeth

+0

** http : //xyproblem.info/** 여기에 올바른 해결책이 없습니다. –

+0

P. @dnoeth를 기다리지 않을 것입니다. 나는 이것이 당신이 그의 도움을 요청할 마지막 시간이되지는 않을 것이라고 당신에게 약속합니다 :-) –

답변

3

이 시도 :

SUBSTR('00', 1, 2-CHARACTER_LENGTH(CAST(COLUMN_NAME AS VARCHAR(10))) 

이 캐릭터 '0'이 마이너스 효율적으로 SQL 서버에 REPLICATE 같은 일을하고 컬럼의 길이를 반복합니다.

+0

이것이 효과가있었습니다! 방금 제로를 추가했습니다 (필요할 경우를 대비하여). 그런데 TD에 nvarchar가 없으므로 VARCHAR (10)과 동등한가? – Xotigu

+0

@ user2331719 정확한 대답을 제공하기에는 Teradata에서 전문가는 아니지만, 'CHARACTER_LENGTH'는 열 크기에 관계없이 문자 수를 제공해야합니다. 따라서 열이 모든 정보가 캐스트에서 살아남을만큼 충분히 넓어야합니다. –

+0

Noted. 다시 한번 감사드립니다. – Xotigu