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 40547 게시물 읽기
No. 40547
쿼리 질문 드립니다.
작성자
게스트
작성일
2014-07-29 18:41ⓒ
2014-07-29 18:47ⓜ
조회수
7,972

안녕하세요.

아래와 같은 데이타 형식에 대해서 쿼리 질문드리고자합니다.

rownum value1 value2 value3
1 11 1  
2 11 1  
3 11 1 T
4 11 1 T
5 11 1 T
6 22 2 F
7 22 2 F
8 22 2 T
9 22 2 T
10 22 2 T

rownum 10개의 데이타중에서 value1값을 기준으로,
value2값은 11이면 1로 셋팅하고, 22면 2로 셋팅하고,
value3값은 1부터 3까지 value2의 값이 동일하면 T로 셋팅하고,
value3값의 2부터 4까지 value2의 값이 동일하면 T로 셋팅하는 규칙으로,
즉 하나씩 쉬프트되면서 3개의 숫자가 동일할땐 T, 다르면 F로 리턴하는 쿼리입니다.
답변주시면 고맙겠습니다.

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

WITH t AS
(
SELECT 11 v1 FROM dual
UNION ALL SELECT 11 FROM dual
UNION ALL SELECT 11 FROM dual
UNION ALL SELECT 11 FROM dual
UNION ALL SELECT 11 FROM dual
UNION ALL SELECT 22 FROM dual
UNION ALL SELECT 22 FROM dual
UNION ALL SELECT 22 FROM dual
UNION ALL SELECT 22 FROM dual
UNION ALL SELECT 22 FROM dual
)
SELECT ROWNUM rn
     , v1
     , DECODE(v1, 11, 1, 22, 2) v2
     , CASE WHEN ROWNUM < 3 THEN NULL
            WHEN v1 = LAG(v1   ) OVER(ORDER BY ROWNUM)
             AND v1 = LAG(v1, 1) OVER(ORDER BY ROWNUM)
             AND v1 = LAG(v1, 2) OVER(ORDER BY ROWNUM)
            THEN 'T'
            ELSE 'F'
        END v3
  FROM t
;

마농(manon94)님이 2014-07-30 10:45에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40551대량 Insert & Update 작업 종료 직전 에러로 인해 프로세스를 강제로 죽인 경우...
이태민
2014-08-06
7571
40550쿼리 조회 질문좀 할게요. [1]
풍류
2014-08-06
7658
40549SQL에서 YYYYMMDD 하고 RRRRMMDD 의 차이를 알고 싶네요? [2]
일쌍다반사
2014-08-01
10423
40547쿼리 질문 드립니다. [1]
게스트
2014-07-29
7972
40546오라클 소수점 표시 이상하네요 [1]
캔디
2014-07-29
8274
40545연산 계산하는 코딩 부탁드립니다ㅠ! [1]
신종민
2014-07-29
7610
40544세로데이터를 콤마추가해서 가로로 변경.... [1]
류시형
2014-07-29
9027
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다