mysql 返回由SQL语句动态查询的列名称,以查找满足特定记录的特定条件的列值

8hhllhi2  于 2023-03-28  发布在  Mysql
关注(0)|答案(1)|浏览(206)

我有一个课程表,如下所示,多达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   |
ar7v8xwq

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|

相关问题