테이블 데이터에서 TABLE명 가져와서 쿼리하는 방법 0 1 1,452

by 김성수 [2016.12.30 09:17:39]


고수님들. 도저히 아이디어가 안떠올라 질문 드립니다. 

질문 : HEAD_NAME을 입력을 하면, TABLE_NAME(TB_H_DATA) 과 COL_NAME(NVAL_01...)을 조회해 데이터 가져오도록 

        예 1) 나는 TST_TABLE에 HEAD_NAME중 DELTA_A의 값을 가져오고 싶다.

             최종 결과는 아래와 같습니다. 

HEAD_NAME NVAL_01 NVAL_02 NVAL_03
DELTA_A 1111 2222 3333

        예 2) 나는 TST_TABLE에 HEAD_NAME 중 DELTA_B 값을 가져오고 싶다.

             최종 결과는 아래와 같습니다. 

HEAD_NAME NVAL_04
DELTA_B 8888

 

 

[TST_TABLE 데이터]

CREATE TABLE TST_TABLE
(
  HEAD_NAME        VARCHAR2(50 BYTE)            NOT NULL,
  TABLE_NAME       VARCHAR2(30 BYTE)            NOT NULL,
  COL_NAME         VARCHAR2(30 BYTE)            NOT NULL
)

HEAD_NAME TABLE_NAME COL_NAME
DELTA_A TB_H_DATA NVAL_01
DELTA_A TB_H_DATA NVAL_02
DELTA_A TB_H_DATA NVAL_03
DELTA_B TB_H_DATA NVAL_04

INSERT INTO TST_TABLE(HEAD_NAME, TABLE_NAME, COL_NAME) VALUES('DELTA_A','TB_H_DATA','NVAL_01');
INSERT INTO TST_TABLE(HEAD_NAME, TABLE_NAME, COL_NAME) VALUES('DELTA_A','TB_H_DATA','NVAL_02');
INSERT INTO TST_TABLE(HEAD_NAME, TABLE_NAME, COL_NAME) VALUES('DELTA_A','TB_H_DATA','NVAL_03');
INSERT INTO TST_TABLE(HEAD_NAME, TABLE_NAME, COL_NAME) VALUES('DELTA_D','TB_H_DATA','NVAL_04');

 

[TB_H_DATA 데이터]

CREATE TABLE TB_H_DATA
(
  HEAD_NAME VARCHAR2(10 BYTE),
  NVAL_01 VARCHAR2(10 BYTE),
  NVAL_02 VARCHAR2(10 BYTE),
  NVAL_03 VARCHAR2(10 BYTE),
  NVAL_04 VARCHAR2(10 BYTE)
)

INSERT INTO TB_H_DATA(HEAD_NAME, NVAL_01, NVAL_02, NVAL_03, NVAL_04) VALUES('DELTA_A','1111','2222','3333','4444');
INSERT INTO TB_H_DATA(HEAD_NAME, NVAL_01, NVAL_02, NVAL_03, NVAL_04) VALUES('DELTA_B','5555','6666','7777','8888');

 

 

 

 

 

by 마농 [2016.12.30 11:01:20]

동적 쿼리 이용하셔야 합니다.

http://www.gurubee.net/article/19612

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입