2017-12-04 11 views
-2

데이터를 가져 오는 데 DB2 db를 사용하고 있습니다. 나는 시나리오에는이 같은 데이터베이스에서 값을 가져 좋아 한 :열 값을 행으로 나누기 DB2

Select user, attributes 
From Data 
Order By DATE desc 
fetch first 1 rows only; 

출력 :

나는 다음과 같은 행으로 "속성"의 열을 갈라하는 데 필요한
user     attributes 
------    ------------    
user1    Name=Rahul|Branch=CSE|Year of Joining=2017 

.

Name   Branch  Year of Joining 
-----   ------  ---------------- 
Rahul   CSE   2017 

쿼리에서이를 수행 할 수 있습니까? 나를 안내 해줘.

답변

0

DB @ support regexp_substr(). 이를 통해 다음을 할 수 있습니다.

select regexp_substr(regexp_substr(attributes, '[^|]+', 1, 1), '[^=]+$', 1, 2) as name, 
     regexp_substr(regexp_substr(attributes, '[^|]+', 1, 2), '[^=]+$', 1, 2) as branch, 
     regexp_substr(regexp_substr(attributes, '[^|]+', 1, 3), '[^=]+$', 1, 2) as name 
from t;