BigQuery TRUNC 함수

32.16에 다음과 같이 TRUNC를 적용하여 소수점 아래 둘쨋자리까지 출력하게 하면 이상하게도 32.15가 출력된다.

SELECT TRUNC(32.16, 2) AS result;
result
0 32.1500


NUMERIC으로 캐스팅한 후 TRUNC 함수 적용

32.16을 NUMERIC으로 캐스팅한 후 TRUNC를 적용하면 이상없이 잘 출력된다.

SELECT TRUNC(CAST(32.16 AS NUMERIC), 2) AS result;
result
0 32.160000000


문자열 필드 소수점 버림 TRUNC 하기

문자열 컬럼인 경우 아래와 같이 NUMERIC으로 캐스팅한 후 이 값에 TRUNC를 적용하면 된다.

with cte as (

  select "12" as area
  union all
  select "12.1" as area
  union all
  select "12.12" as area
  union all
  select "12.123" as area

) select cte.area, 
         SAFE_CAST(cte.area AS NUMERIC) as numArea,
         TRUNC(SAFE_CAST(cte.area AS NUMERIC), 2) as result,
from cte
;

태그:

카테고리:

업데이트:

댓글남기기