0

我有一个课程表,如下所示,最多有 600 门课程。我想为不为空的字段值整理列名。我确信下面的查询可以完成一些字段的工作。我可以动态地完成它,这样我就不必在 CASE - WHEN 语句中写出所有课程。

TBL_COURSES

| 学生证 | 数学101 | 化学121 | ENG101 | PHY111 | CSC121 | |-----------|---------|---------|--------|-------- |--------| | 301 | 空 | 10 | 空 | 10 | 空 | | 402 | 75 | 空 | 空 | 10 | 75 | | 423 | 80 | 10 | 空 | 10 | 60 | | 404 | 空 | 10 | 100 | 10 | 空 | | 505 | 空 | 10 | 空 | 10 | 55 |

4

1 回答 1

0

SQL> SELECT studentId, (CASE WHEN MATH101 IS NOT NULL THEN 'MATH101' WHEN CHEN121 IS NOT NULL THEN 'CHEM121' WHEN ENG101 IS NOT NULL THEN 'ENG101' WHEN PHY111 IS NOT NULL THEN 'PHY111' WHEN CSC121 IS NOT NULL THEN' CSC121' ELSE '' END) AS registered_courses FROM tbl_courses WHERE studentId = 402 ;

结果

| 学生证 | REGISTERED_COURSES | |-----------|---------| | 402 | 数学101 | | 402 | PHY111 | | 402 | CSC121 |

于 2015-01-28T16:41:05.320 回答