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 41205 게시물 읽기
No. 41205
row를 합칠수 있을까요?
작성자
하늘
작성일
2016-08-01 15:20ⓒ
2016-08-01 15:24ⓜ
조회수
6,616
           with tmp as
           (
            select typeitemcode
                 , itemname
                 , itemcheck
                 , to_clob('') as content
                 , to_date('') as regdate
                 , '' as title
              from table1
            union all
            select '' as typeitemcode
                 , '' as itemname
                 , to_number('') as itemcheck
                 , content
                 , regdate
                 , title
              from table2
           ) select *
               from tmp
 
-----------------------------------------------------------------------------------------
typeitemcode | itemname | itemcheck | content   | regdate | title
C1                    C1 TYPE    500           HugeClob                        
C2                    C1 TYPE    300           HugeClob                        
C3                    C1 TYPE    200           HugeClob
                                                             HUGECLOB  2016-06-29  제목입니다.                                                            
                                                             HUGECLOB  2016-07-30  제목입니다.                                                            
                                                             HugeClob       2016-06-29  제목입니다.
           
 
위 타입 결과C1~C3는 3~5개로 유동적이며 그 결과 수 만큼 content 컬럼의 clob타입으로 저장이 됩니다.
두 결과를 합치고 싶은데 조언좀 부탁드립니다.
 
----------------------------------------------------------------------------------------------------- 
 
typeitemcode | itemname | itemcheck | content   | regdate | title
C1                    C1 TYPE    500           HUGECLOB  2016-06-29  제목입니다.     
C2                    C1 TYPE    300           HUGECLOB  2016-07-30  제목입니다.         
C3                    C1 TYPE    200           HugeClob     2016-07-30  제목입니다.         
                                                                                                                    
                                                                                                                
 

 

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

Union All 이 아니라 Join 을 해야 할 듯.


SELECT a.typeitemcode
     , a.itemname
     , a.itemcheck
     , b.content
     , b.regdate
     , b.title
  FROM table1 a
     , table2 b
 WHERE a.typeitemcode = b.typeitemcode
;

마농(manon94)님이 2016-08-01 15:52에 작성한 댓글입니다.

질문 내용이 다소 부족했네요.
table1 의 내용은 코드성 데이터가 들어가 있는상태이고
table2는 저장전 table1의 코드성 데이터를 참조하여 table1의 코드값인 typeitemcode의 값을
저장하게 되어있습니다.

결과값은 table1과 table2를 join하면 문제없이 나오지만, 업무규칙이 변경이 된 상황이
table1의 내용이 변경되면 그 변경된 코드를 조회해 와야 되는 상황입니다.
그러니까, table2의 내용은 table1의 데이터가 변경되었다면 찾을수 없는 구조이네요.
연결고리가 없는 상태에서

select typeitemcode
     , itemname
     , itemcheck
     , to_clob('') as content
     , to_date('') as regdate
     , '' as title
  from table1
 where partypeitemcode = 'C'              <---- 변경타입의 값은 실시간 조회해서 파라미터로 던지고 있습니다.

 그래서 union all 을 사용해서 해보니 값이 제대로 나오질 않아 질문드렸었는데요~~

-------------------------------
with tmp as
           (
            select typeitemcode
                 , itemname
                 , itemcheck
                 , to_clob('') as content
                 , to_date('') as regdate
                 , '' as title
              from table1
          where partypeitemcode = 'C'
            union all
            select '' as typeitemcode
                 , '' as itemname
                 , to_number('') as itemcheck
                 , content
                 , regdate
                 , title
              from table2
           ) select *
               from tmp

table2의 typeitemcode 코드값이 있지만, table1의 값이 변경되면 찾아오질 못해서 위와 같이 시도를 해보았습니다.
결과값은 partypeitemcode 값에 따라 현재 코드값이 조회가 되면 되고
table2의 내용이 출력되길 원합니다. 어차피 table1 타입은 파라미터에 따라 조회해서 보여주면 되고
table2의 내용은 table1의 내용에 상관없이 content가 보여주고 다시 재저장을 유도하므로 중간 과정에서의 데이터라고 보시면 됩니다.

설명으로 쓸려니 좀 어설프고 부족한듯 싶네요^^;

하늘님이 2016-08-01 16:15에 작성한 댓글입니다. Edit

변경된 코드에 대한 이력을 따로 저장해 두지 않았다면?
불가능합니다.
연결고리가 있어야 테이블이 연결되지요.
연결고리 없이 연결이 불가능합니다.
연결고리가 있다면?
그에 대한 설명을 좀더 자세히 해주셔야 할 듯.

마농(manon94)님이 2016-08-01 16:50에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41208proc에서 다이나믹 쿼리 실행시...
박봉균
2016-08-04
6560
41207조건검색 sql 문 질문 [1]
최진안
2016-08-04
6501
41206인상률 구하는 쿼리 질문드립니다. [4]
건곤대나이
2016-08-02
6943
41205row를 합칠수 있을까요? [3]
하늘
2016-08-01
6616
41204프로시져 에서 인자값으로 조회조건 변경 [1]
초보
2016-07-28
6547
41203create diretory 관련 문의
정재영
2016-07-28
6751
41202Table 백업을 위한 Export시 보안방법 문의
보안초보
2016-07-27
6529
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다