2차원 배열을 1차원 배열의 형태로 만들고 싶습니다. 1 3 773

by 곤 [SQL Query] 오라클 엑셀 [2021.11.12 14:01:10]


아래의 표처럼 값이 들었을때, 

구분자 A B C
Y   Y
Y    
Y Y  
Y Y  
    Y
Y    
  Y  
Y   Y
     
Y Y  
Y   Y
Y    
Y Y Y
  Y  

 

아래의 표처럼 값이 있는것을 체크하여 1차원 적으로 만들어 주고 싶습니다.

A
A
A
A
A
A
A
A
A
A
B
B
B
B
B
B
C
C
C
C
C

 

임시테이블을 생성하여 쿼리를 통해 만들어도 좋고 엑셀에서 수식이나 함수를 통해 2차원배열 형태를 1차원적으로 만들 수 있어도 좋습니다.

 

좋은 방법이 없을까요??

by 곤 [2021.11.12 14:10:23]

혹시 임시테이블을 만들어서 프로시져 for문을 통해 해결할 수 있을까요? 사용 DB는 오라클입니다! 엑셀로 해결하든 DB로 해결하든 상관은 없습니다! 아래의 형태만 나오면 됩니다.


by 마농 [2021.11.12 14:28:31]
WITH t AS
(
SELECT '가'gb, 'Y' a, '' b, 'Y' c FROM dual
UNION ALL SELECT '나', 'Y', '' , ''  FROM dual
UNION ALL SELECT '다', 'Y', 'Y', ''  FROM dual
UNION ALL SELECT '라', 'Y', 'Y', ''  FROM dual
UNION ALL SELECT '마', '' , '' , 'Y' FROM dual
UNION ALL SELECT '바', 'Y', '' , ''  FROM dual
UNION ALL SELECT '사', '' , 'Y', ''  FROM dual
UNION ALL SELECT '아', 'Y', '' , 'Y' FROM dual
UNION ALL SELECT '자', '' , '' , ''  FROM dual
UNION ALL SELECT '차', 'Y', 'Y', ''  FROM dual
UNION ALL SELECT '카', 'Y', '' , 'Y' FROM dual
UNION ALL SELECT '타', 'Y', '' , ''  FROM dual
UNION ALL SELECT '파', 'Y', 'Y', 'Y' FROM dual
UNION ALL SELECT '하', '' , 'Y', ''  FROM dual
)
SELECT cd, gb
  FROM t
 UNPIVOT (v FOR cd IN (a, b, c))
 ORDER BY cd, gb
;

 


by 곤 [2021.11.12 14:35:34]

너무 감사드립니다!!! 피벗을 이용해서 간단하게 해결할 수 있었던 문제였네요!!!! 항상 마농님께 배우고 갑니다. 감사합니다~

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