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 21092 게시물 읽기
No. 21092
두개의 테이블을 합하려고하는데...
작성자
황장하(Re4Leaf)
작성일
2004-12-17 11:48ⓒ
2004-12-17 11:56ⓜ
조회수
2,373

예를 들어서.

(a) 국어|수학|과학|지리               (b) 국어|수학|과학|지리             (c) 국어|수학|과학|지리

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

1차   B      C      A     D            1차  B'     C'     A'    D'                1차  B      C     A      D

2차   C      C      B     A            2차  C'     B'     B'    A'                2차  C      B'    B      A

3차   C      A      A     B            3차  A'     A'     B'    B'                3차  A'      A     B'     B

4차   C      D      D     A            4차  C'     D'     D'    A'               4차  C       D     D      A

                                             5차  B'     A'     C'    D'                5차  B'      A'    C'     D'

 

 

(a)와 (b)를 합쳐서 (c)와 같은 결과를 나오게 하고 싶습니다.

A = A', B=B', C=C', D=D' 로 값이 같지만.. 값이 같을경우 덮어씌우지 말아야된다는...

어떻게 하면 (c)와 같은 결과값을 나오게 할수 있을까요... 답변 부탁드리겠습니다.

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

select b.차수,
          decode(a.국어, b.국어, a.국어, b.국어) as 국어,
          decode(a.수학, b.수학, a.수학, b.수학) as 수학,
          decode(a.과학, b.과학, a.과학, b.과학) as 과학,
          decode(a.지리, b.지리, a.지리, b.지리) as 지리
from   tableA a,
          tableB b
where  a.차수(+) = b.차수;

이러면 될 것 같은데.. 확신 못하겠네요~

 

 

작살초보(작살초보)님이 2004-12-17 13:19에 작성한 댓글입니다.

쩝...db는 처음이라 잘 이해가 안가네여..ㅠㅠ

좀 풀어서 설명 부탁드릴께요.

황장하(Re4Leaf)님이 2004-12-17 13:48에 작성한 댓글입니다.

음..

처음이시라면... 이해 안가실것 같은 부분만 설명 드려볼께여.

 

>decode(a.국어, b.국어, a.국어, b.국어) as 국어

decode의 자세한 용법은 따로 검색하시는게 좋을것 같구요...

위 구문은.. 테이블 A, 테이블 B를 조인해서..

A테이블의 국어값하고 B테이블의 국어값이 같으면

A테이블의 국어값으로 '국어'컬럼에 넣어주고 다르면 B테이블의

국어값으로 넣어준다는 뜻입니다.

 

decode(col, value1, value2, value3)

이걸 if로 표현하면..

if col = value1 then

   value2;

else value3;

 

>where  a.차수(+) = b.차수;

B테이블에는 로우가 있는데  A테이블에는 비교 로우가 없을 경우에도

조인 결과를 보여주라는 뜻입니다.

 

그런데 질문 내용상..

쿼리 결과는 항상 B테이블값이 나올것 같은데..

왜 이런 쿼리를 원하시는지..@.@;;

 

 

작살초보(작살초보)님이 2004-12-17 14:08에 작성한 댓글입니다.

그런 것이 꼭 필요해서요..

이해가 가는군요..

정말 감사합니다.

황장하(Re4Leaf)님이 2004-12-17 14:16에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
21095데이터를 5분 단위로 합산해서 가져 올려고 하는데... [2]
정진종
2004-12-17
7361
21094[급] 카테고리 이름까지 출력 하고 싶어요 도와주세요. [1]
임장환
2004-12-17
1643
21093인덱스의 이상현상 [1]
제발
2004-12-17
2000
21092두개의 테이블을 합하려고하는데... [4]
황장하
2004-12-17
2373
21091기초적 인덱스 관련 질문요. [1]
Jung
2004-12-17
1945
21090실시간으로 데이터 변경을 알 수 있는 방법은? [4]
복팅이
2004-12-17
2288
21089오라클 동시접속 최대 값이 몇 connect인가요? [3]
toomany
2004-12-17
16154
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다