database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 10051 게시물 읽기
No. 10051
SET ANSI_WARNINGS OFF..0으로 나누기
작성자
뉴비뉴비이잉
작성일
2019-03-14 18:18
조회수
3,470

 안녕하세요 초보개발자 입니다.

MS-SQL 에서 PostgreSQL 로 변환 작업 중에 있는데 막히는 부분이 있어서요ㅠㅠ

set ansi_warnings off

set arithignore on

set arithabort off 이 쿼리인데

0으로 나누기 오류방지를 위해서 사용한다고 알고 있습니다.

 

이런 쿼리를 postgresql에서는 어떤식으로 사용해야하나요..?

이 글에 대한 댓글이 총 3건 있습니다.

어어.. 찾아봤는데

nullif()함수를 사용하면 되는걸까요 !?

테스트 쿼리에서는 잘되는거 같은데 다른 문제는 없는건지...! 

뉴비뉴비이잉님이 2019-03-14 18:26에 작성한 댓글입니다. Edit

 저런 설정이 안 먹히니 없는대로 사용하다 문제가 있으면 그 문제 있는 쿼리를 고치면 되는 것 아닌가요? 

0으로 나눠 null 로 처리되었던 것이 쿼리 오류가 나겠죠. 그러면, case when 구문으로 분모가 0이면 null 을 반환하도록 바꿔야할 것 같습니다. 

여튼, 똑같은 일을 하는 설정은 없습니다.

김상기(ioseph)님이 2019-03-14 18:35에 작성한 댓글입니다.

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
;

마농(manon94)님이 2019-03-15 10:15에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
10057DB 백업&복구 고수님께 질문 [1]
DB mania
2019-03-25
3232
10053DETACH PARTITION 질문 [1]
test
2019-03-18
3142
10052UNNEST는 순서를 보장해주나요? [1]
test
2019-03-15
3115
10051SET ANSI_WARNINGS OFF..0으로 나누기 [3]
뉴비뉴비이잉
2019-03-14
3470
10050터미널창에서 db 접속이 되지 않습니다 [1]
탁구공
2019-03-13
3037
10049여러개의 csv 파일을 한번에 import 시키고 싶은데 방법이 없을까요? [1]
상킴
2019-03-12
3096
10048query plan에 merge append 는 언제 하게되는건가요?? [1]
test
2019-03-11
2861
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다