안녕하세요 초보개발자 입니다.
MS-SQL 에서 PostgreSQL 로 변환 작업 중에 있는데 막히는 부분이 있어서요ㅠㅠ
set ansi_warnings off
set arithignore on
set arithabort off 이 쿼리인데
0으로 나누기 오류방지를 위해서 사용한다고 알고 있습니다.
이런 쿼리를 postgresql에서는 어떤식으로 사용해야하나요..?
어어.. 찾아봤는데
nullif()함수를 사용하면 되는걸까요 !?
테스트 쿼리에서는 잘되는거 같은데 다른 문제는 없는건지...!
저런 설정이 안 먹히니 없는대로 사용하다 문제가 있으면 그 문제 있는 쿼리를 고치면 되는 것 아닌가요?
0으로 나눠 null 로 처리되었던 것이 쿼리 오류가 나겠죠. 그러면, case when 구문으로 분모가 0이면 null 을 반환하도록 바꿔야할 것 같습니다.
여튼, 똑같은 일을 하는 설정은 없습니다.
WITH t AS ( SELECT 6 x, 3 y UNION ALL SELECT 6, 2 UNION ALL SELECT 2, 0 ) SELECT x , y -- , x / y z , x / NULLIF(y, 0) z FROM t ;