나는 일반적으로 Teradata
과 SQL
을 매우 새로 도입했습니다. 세 테이블의 데이터를 결합하여 테이블을 만들어야합니다. 나는 그들 중 2 명과 성공적으로 합류 할 수 있었다. 세 번째 테이블에 대한 조인 조건을 올바르게 작성할 수 없습니다.Teradata - Varchar와 십진수 비교
select s.cola, s.colb,
t.colc, t.cold,
u.cole, u.colf, u.colg, u.colh, u.coli, u.colj, u.colk, u.coll
from table1 s
inner join table2 t
on s.colb = t.colc
inner join table3 u
on t.cold = cast(u.colm as decimal)
order by 3
where substr(cast(s.cola as varchar(10)),6,2) = 11 and substr(cast(s.cola as varchar(10)),1,4) = 2017 and substr(cast(s.cola as varchar(10)),9,2) between 06 and 10
내가 점점 오전 오류는 다음과 같습니다 :
[Teradata Database] [2620] The format or data contains a bad character.
나는 문제가 줄 생각 : on t.cold = cast(u.colm as decimal)
여기에 코드입니다. u.colm
은 VARCHAR(50)
이고 t.cold
은 DECIMAL(10, 0)
입니다. 나는 그것을 올바르게 캐스팅했다고 믿습니다. 제발 도와 줘. 고맙습니다.
답장을 보내 주셔서 감사합니다. 'u.colm'에는 알파벳과 숫자가 모두 포함 된 값이 있습니다. 나는't.cold'를'varchar (50)'으로 캐스팅하여 그것을 고쳤습니다. 's.cola '는 날짜이지만 위의 행은 작동하지 않습니다. 주문에 대한 정정에 감사드립니다. –
'trycast' 대신'cast'를 시도했을 때'where' 조건의 날짜 문제가 해결되었습니다. –