我有一个课程表,如下所示,多达600门课程。我想整理出字段值的列名是NOT NULL。我相信下面的查询可以做一些字段的工作。我可以动态完成,这样我就不必在CASE - WHEN语句中写出所有课程。
TBL_COURSES
============
| STUDENTID | 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 |
1条答案
按热度按时间ar7v8xwq1#
SQL〉SELECT studentId,(CASE WHEN MATH101 IS NOT NULL THEN 'MATH101' WHEN CHEM121 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 ;
结果
| 学生|注册课程||- —————————-|- ——————————————————-||四○二|MATH101||四○二|PHY111||四○二|CSC121|