2015-01-28 5 views
0

최대 600 개의 코스와 함께 아래에 표시된 코스 목록이 있습니다. NULL이 아닌 필드 값의 열 이름을 정렬하려고합니다. 아래 쿼리가 몇 가지 필드에서 작업을 수행 할 수 있다고 확신합니다. CASE - WHEN 문에 모든 과정을 작성하지 않아도되므로 동적으로 수행 할 수 있습니다.특정 레코드에 대한 특정 조건을 충족하는 열 값에 대해 sql 문에 의해 동적으로 쿼리 된 반환 열 이름

TBL_COURSES

| 심리학 | MATH101 | CHEM121 | ENG101 | PHY111 | CSC121 | | ----------- | --------- | --------- | -------- | ------- - | -------- | | 301 | NULL | 10 | NULL | 10 | NULL | | 402 | 75 | NULL | NULL | 10 | 75 | | 423 | 80 | 10 | NULL | 10 | 60 | | 404 | NULL | 10 | 100 | 10 | NULL | | 505 | NULL | 10 | NULL | 10 | 55 |

답변

0

SQL> SELECT studentId MATH101가 NULL, (CASE THEN 'MATH101' CHEM121가 NULL NOT 때 THEN 'CHEM121가' 가 ENG101 후 NULL 없을 때 'ENG101' PHY111 후 NULL NOT IS ' PHY111 ' CSC121이 NULL이 아닌 경우 그 다음'CSC121 ' ELSE' 끝) AS 등록 _ 경로 FROM tbl_courses 여기서 studentId = 402;

결과

| 심리학 | REGISTERED_COURSES | | ----------- | -------------------- | | 402 | MATH101 | | 402 | PHY111 | | 402 | CSC121 |

+0

OUTPUT이 동적으로 생성되지 않으므로 많은 테이블이있는 상황에서는 사용할 수 없습니다. 어떤 화려한 아이디어 ??? – Nditah

관련 문제