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
운영게시판
최근게시물
DB2 Q&A 772 게시물 읽기
No. 772
[SQL]중복되는 것 중에 고르기
작성자
김명석
작성일
2005-03-07 16:05ⓒ
2005-03-07 16:17ⓜ
조회수
6,803

 

 

HBUP001N A AUADL
HBUP001N C AUADL
HBUP001N L AUADL
HBUP001N A AUFRE
HBUP001N C AUFRE
HBUP001N L AUFRE
HBUP001N A AUMEL
HBUP001N C AUMEL
HBUP001N L AUMEL
HBUP001N C MYPKG
HBUP001N L MYPKG
HBUP001N A SGSIN
HBUP001N C SGSIN
HBUP001N L SGSIN
HBUP001S A AUADL
HBUP001S C AUADL
HBUP001S L AUADL
HBUP001S C AUFRE
HBUP001S L AUFRE
HBUP001S A AUMEL
HBUP001S C AUMEL
HBUP001S L AUMEL
HBUP001S L MYPEN
HBUP001S C MYPKG
HBUP001S L MYPKG
HBUP001S C SGSIN
HBUP001S L SGSIN




위에는 테이블(TEST_TABLE) 예제입니다.

COL2 의 우선순위는 A>C>L순입니다.

 

결과는

 

HBUP001N A AUADL
HBUP001N A AUFRE
HBUP001N A AUMEL
HBUP001N C MYPKG
HBUP001N A SGSIN
HBUP001S A AUADL
HBUP001S C AUFRE
HBUP001S A AUMEL
HBUP001S L MYPEN
HBUP001S C MYPKG
HBUP001S C SGSIN
이렇게 나와야 합니다.

이게 SQL로 가능한지요?

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

오라클의 MINUS 사용한 겁니다 참고하세요

DB2에서는 EXCEPT를 사용하면 된다는데..

잘안되네요 ^^; 해보고 완성되면 그거 올릴께요

 

테이블은 이렇게 만들었습니다.

--------------------------------------------

CREATE TABLE TEST_TABLE3

(PROJNO VARCHAR(10) PRIMARY KEY,

PROJCD VARCHAR(20),

PROJGB VARCHAR(10),

NAME VARCHAR(10))

-------------------------------------------

그다음 INSERT INTO 문으로 하나하나 넣었구요..

 

실제 쿼리는...

---------------------------------------------

SELECT * FROM
  (SELECT * FROM
    (SELECT * FROM TEST_TABLE3 WHERE PROJCD='HBUP001N'
    MINUS
    SELECT * FROM TEST_TABLE3
    WHERE PROJGB='L' OR PROJGB='C' AND NAME LIKE 'A%' OR
       PROJGB='C' AND NAME LIKE 'S%') AA
  ORDER BY NAME) BB
UNION ALL
SELECT * FROM 
  (SELECT * FROM
    (SELECT * FROM TEST_TABLE3 WHERE PROJCD='HBUP001S'
    MINUS
    SELECT * FROM TEST_TABLE3
    WHERE PROJGB='L' AND NAME LIKE 'A%' OR PROJGB='C' AND NAME LIKE 'AUA%' OR PROJGB='L' AND NAME LIKE 'MYPK%' OR
          PROJGB='L' AND NAME LIKE 'S%' OR PROJGB='C' AND NAME LIKE 'AUME%') CC
     ORDER BY NAME) DD

----------------------------------------------------------

이문장입니다.

참고하세요..

 

수노님이 2005-03-09 12:01에 작성한 댓글입니다.
이 댓글은 2005-03-09 14:04에 마지막으로 수정되었습니다. Edit

안녕하세요.

 

그냥 그룹핑하면 안되나요?

 

select

    PROJCD ,

    min(PROJGB),

   NAME

from  TEST_TABLE
group by PROJCD , NAME

 

 

장석문(math90)님이 2005-03-18 11:01에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
777이런문장 안대나요??? [1]
양충식
2005-03-16
6084
775한글 + 영문(EBCDIC) 조합으로 된 내용을 select 해올때 [1]
김초짜
2005-03-15
6495
774hybrid join 메커니즘이 어떻게 되나요..? [2]
초보
2005-03-10
6752
772[SQL]중복되는 것 중에 고르기 [2]
김명석
2005-03-07
6803
771디비2에서는 스키마가 다른 개정의 테이블을 볼수 있나요?? [1]
코난
2005-02-27
5380
770MSSQL에서 @@rowcount와 같은 기능이 있는지요? [1]
전운
2005-02-26
7591
769[질문] DB2 Query와 관련된 질문입니다. [1]
서복만
2005-02-25
5434
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다