2017-11-15 1 views
0

을 분리.내가 이러한 구조로 테이블이

select xxxxx from yyyyy where jjjjj in (material, clay, rush) 
select xxxxx from yyyyy where jjjjj in (material, air) 
select xxxxx from yyyyy where jjjjj in (metal, iron) 
select xxxxx from yyyyy where jjjjj in (metal, gold, silver, aluminum) 

YYYY 다른 테이블이 들어 나는 쿼리가 같이해야한다.

pl/sql을 사용하여 이들을 만들 수 있습니까? 나는 노력하고 있었지만 능력이 없다. 조금 혼란 스럽다. 감사와 안부,

+0

테이블이 제대로 정규화되지 구경에게, 그것은 [1NF (https://en.wikipedia.org/wiki/First_normal_form) 규칙을 따르지 않는 작동합니다. 스키마를 표준화하고 여러 값을 단일 열에 저장하지 않는 것이 좋습니다. 그렇게하지 않으면 고통이 시작됩니다. 거의 모든 쿼리에서이 열을 개별 값으로 구문 분석해야합니다. – krokodilko

답변

0

이것은 당신이

DECLARE 
l_query VARCHAR(500); 
BEGIN 
    FOR i in (SELECT FiledA, FiledB, FiledA||','||FiledB AS FiledC FROM test) 
    LOOP 
     l_query := 'SELECT xxxxx FROM yyyyy WHERE jjjjj IN '; 
     l_query := l_query||'('||i.FiledC||')'; 
     UPDATE test 
      SET FiledC = l_query 
     WHERE FiledA = i.FiledA 
      AND FiledB = i.FiledB; 
     l_query := NULL; 
    END LOOP; 
    COMMIT; 
END; 
/
관련 문제