2014-02-14 8 views
0

두 개의 열을 검색하는 쿼리가 있습니다. 이처럼쿼리 결과에 동적으로 열을 추가합니다. Oracle

:

select subscription_id, months from subscriptions; 

지금, 결과는 다음과 같이이다 : 나는 오른쪽에서 쿼리의 결과에 추가 할

subscription_id months 
     1254   4 
     5896   1 
     8965   3 

, 열을 동적으로 달려 회수되는 달의 수. 하나의 레코드에 대한 결과가 4라면, 다음 행에 대해 동일한 행에 대해 값 4를 추가하는 식으로 진행합니다.

예 :

subscription_id months 0  1 2 3 4 5 
     1254   4  4  4 4 4 4 
     5896   1  1  1 
     8965   3  3  3 3 3 3 

참고 : 나는 오라클 10g를 사용하고, 피벗는 사용할 수 없습니다. 이 작업을 수행하는

답변

1

한 가지 방법 :

select 
     subscription_id, 
     months, 
     CASE WHEN MONTHS >= 0 THEN MONTHS END Month_0, 
     CASE WHEN MONTHS >= 1 THEN MONTHS END Month_1, 
     CASE WHEN MONTHS >= 2 THEN MONTHS END Month_2, 
     CASE WHEN MONTHS >= 3 THEN MONTHS END Month_3, 
     CASE WHEN MONTHS >= 4 THEN MONTHS END Month_4, 
     CASE WHEN MONTHS >= 5 THEN MONTHS END Month_5, 
     CASE WHEN MONTHS >= 6 THEN MONTHS END Month_6, 
     CASE WHEN MONTHS >= 7 THEN MONTHS END Month_7, 
     CASE WHEN MONTHS >= 8 THEN MONTHS END Month_8, 
     CASE WHEN MONTHS >= 9 THEN MONTHS END Month_9,              
     CASE WHEN MONTHS >= 10 THEN MONTHS END Month_10, 
     CASE WHEN MONTHS >= 11 THEN MONTHS END Month_11, 
     CASE WHEN MONTHS >= 12 THEN MONTHS END Month_12 
from subscriptions; 
관련 문제