작성
·
197
0
안녕하세요 선생님:) 질문이 있어 글을 남기게 되었습니다. 항상 좋은 강의 감사합니다.
해당 강의에서 나온 코드를 일부를 보면
b.ord_month, round(b.sum_revenue::numeric, 2) as sum_revenue
이러한 코드가 있었어요.
그런데 여기서 ::numeric을 왜 붙이는 건지 조금더 자세히 알려주실 수 있을까요?
이미 sum_revenue는 숫자로 이루어져있는데 뒤에 numeric을 붙이는 이유를 알고 싶습니다.
감사합니다
답변 1
1
안녕하십니까,
postgresql이 좀 타입 체크를 심하게 하는 경우가 있습니다.
특히 round()함수를 사용할 때 이런 경우가 종종 발생하는데, 예제 코드에서 numeric을 안주면 round에서 오류가 발생할 것입니다.
round()의 인자로 들어가는 컬럼이 명확하게 numeric이라고 명시되지 않으면 수행시 오류가 발생할 수 있습니다. 실제로도 number 값인데, precision이 좀 다르다거나 하는 경우 오류가 날수 있습니다. 때문에 postgresql에서 round() 함수 사용시에는 명확하게 numeric으로 형변환을 해주는 것이 좋습니다.
감사합니다.