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
운영게시판
최근게시물
Oracle Q&A 40523 게시물 읽기
No. 40523
간단한 쿼리 질문
작성자
버기
작성일
2014-07-11 16:19
조회수
7,397

SELECT CNT , TEST1, TEST2
, CASE WHEN TEST1 <> 0 THEN  TEST2-TEST1 END AS RESULT
FROM (
SELECT '1' AS  CNT, 2 AS TEST1, 10 AS TEST2 FROM DUAL
UNION ALL
SELECT '2' AS  CNT, 2 AS TEST1, 20 AS TEST2 FROM DUAL
UNION ALL
SELECT '3' AS  CNT, 2 AS TEST1, 30 AS TEST2 FROM DUAL
)
;

위에 쿼리를 실행하면 아래와 같습니다.

TEST1이 0이 아닐때,  TEST2 - TEST1을 빼는 쿼리인데요..

이거를 모든 ROW에 다 빼지않고 3개의 ROW에서 한곳만 빼고 싶은데요.. 어떻게 수정해야 할지?

CNT TEST1 TEST2 RESULT
1 2 10 8
2 2 20 18
3 2 30 28

 

아래와 같이 ROW에만 빼고 나머지는 안빼는 식으로 쿼리를 수정할려면 어떻게 해야할지?

CNT TEST1 TEST2 RESULT
1 2 10 8
2 2 20 20
3 2 30 30

 

 

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

SELECT CNT , TEST1, TEST2
    , CASE WHEN TEST1 <> 0 AND CNT = 1 THEN  TEST2-TEST1 ELSE TEST2 END AS RESULT
FROM (
SELECT '1' AS  CNT, 2 AS TEST1, 10 AS TEST2 FROM DUAL
UNION ALL
SELECT '2' AS  CNT, 2 AS TEST1, 20 AS TEST2 FROM DUAL
UNION ALL
SELECT '3' AS  CNT, 2 AS TEST1, 30 AS TEST2 FROM DUAL
)
;

 

CNT가 1인것만 빼기를 하게 변경하였습니다.

박성빈(빈이님)님이 2014-07-11 17:24에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40526월별 통계 쿼리 도움좀 부탁드립니다. [1]
염진호
2014-07-16
8421
40525초보의 쿼리 질문이예요 ^^ [1]
부강
2014-07-14
6919
40524두개 이상의 칼럼에서 표준편차 구하는 방법이 궁금합니다. [2]
이용헌
2014-07-11
7454
40523간단한 쿼리 질문 [1]
버기
2014-07-11
7397
40522쿼리 머지 기능이긴 한데... 간단히 처리 가능한지 [2]
쩌그노트
2014-07-11
7378
40521쿼리 질문 [1]
guest
2014-07-10
7214
40520코드 검증관련 쿼리문의 [8]
량디
2014-07-08
7526
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다