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 41760 게시물 읽기
No. 41760
안녕하세요? WHERE절 조건에 CASE구문을 사용했는데요. 개념적으로 이해가 안되서 질문 드립니다.
작성자
AstroTimothy(words56)
작성일
2019-09-23 16:53ⓒ
2019-09-23 16:55ⓜ
조회수
2,347

 안녕하세요?

where절 조건을 현재월 일때만 다르게 하고 싶어서 Case구문을 썼는데요.

생각했던대로 결과는 나오는데 개념적으로 이해가 잘 가지않아서 질문드립니다.

 

현재 제가 작성한 쿼리는 다음과 같습니다

 

SELECT 

    YEAR

    , MONTH

    , NVL(MAX(COL2))

FROM TABLE1

WHERE COL1 =

    CASE

        WHEN YEAR||MONTH = ‘현재년도’||’현재월

        THEN ‘A’

        ELSE ‘B’

GROUP BY YEAR, MONTH

 

(현재년도와현재월은화면에서선택한값이바인딩되어들어갑니다)

 

저렇게되면여러줄의행이나오는데요행별로YEARMONTH조합한값을바인딩된값과비교해서COL1조건과일치하면‘B’라는조건을가진결과만남겨져서최종결과로나오게된다고이해하면될까요?

기본개념자체가없다보니갑자기궁금해져서질문드립니다

 

 

 

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

핸드폰으로 작성했더니 띄어쓰기 적용이 안되네요.. ㅠㅠ 죄송합니다.. 

AstroTimothy(words56)님이 2019-09-23 16:56에 작성한 댓글입니다.

CASE

        WHEN YEAR||MONTH = ‘현재년도’||’현재월

        THEN ‘A’

        ELSE ‘B’


YEAR||MONTH 가 '현재년도'||'현재월' 과 같으면 
'A' 
다르면 
'B' 를 반환합니다. 

col1 = (A or B)  값을 갖게 됩니다. 
col1 이 A or B 값과 맞게 되면
해당되는 결과를 group by 하는 쿼리입니다. 




lucky님이 2019-09-24 10:52에 작성한 댓글입니다. Edit

1. 현재년월에 해당하는 자료 중 A 인 것과
2. 현재년월에 해당하지 않는 자료 중 B 인 것
[예시]
2019 07 A
2019 07 B  <-- 2
2019 08 A
2019 08 B  <-- 2
2019 09 A  <-- 1
2019 09 B

마농(manon94)님이 2019-09-27 08:46에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41764오라클 프로시저를 활용하여 순차적으로 파티션마다 작업하고 싶습니다.
오라클
2019-09-30
2090
41763오라클 어드민 관련 3개질문 [1]
김동현
2019-09-29
2114
41762update 시 자동으로 작동하는 트리거 문의드립니다 [1]
민수홍
2019-09-26
2214
41760안녕하세요? WHERE절 조건에 CASE구문을 사용했는데요. 개념적으로 이해가 안되서 질문 드립니다. [3]
AstroTimothy
2019-09-23
2347
41759로또 번호 카운트 쿼리좀 부탁드립니다 ㅠ.ㅠ [3]
민수홍
2019-09-23
2419
41758SELECT절에 별칭.* 무슨의미에요? [1]
star
2019-09-22
2192
41757oracle database numeric(p,q) 질문이요!
질문질문!!
2019-09-21
2046
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다