select * from vmark1;+-----+--------+--------+------+| sid |..."/>
您好,登錄后才能下訂單哦!
由于是模擬場(chǎng)景,直入主題,表名稱及結(jié)構(gòu)定義很low,請(qǐng)忽視!
(1)現(xiàn)有學(xué)生分?jǐn)?shù)表如下:
mysql> select * from vmark1;
+-----+--------+--------+------+
| sid | sname | course | mark |
+-----+--------+--------+------+
| 1 | 張三 | jsj | 90 |
| 1 | 張三 | yuwen | 65 |
| 1 | 張三 | yingyu | 80 |
| 2 | 李四 | jsj | 80 |
| 2 | 李四 | yuwen | 98 |
| 2 | 李四 | yingyu | 90 |
+-----+--------+--------+------+
6 rows in set (0.00 sec)
(2)需求是以更直觀的方式,查看學(xué)生的成績(jī)。細(xì)化也就是把mark這列的值,以行的形式展示。通過(guò)case..when語(yǔ)句查詢:
mysql> select sid,sname,case when course='jsj' then mark end jsj,case when course='yuwen' then mark end yuwen,case when course='yingyu' then mark end yingyu from vmark1;
+-----+--------+------+-------+--------+
| sid | sname | jsj | yuwen | yingyu |
+-----+--------+------+-------+--------+
| 1 | 張三 | 90 | NULL | NULL |
| 1 | 張三 | NULL | 65 | NULL |
| 1 | 張三 | NULL | NULL | 80 |
| 2 | 李四 | 80 | NULL | NULL |
| 2 | 李四 | NULL | 98 | NULL |
| 2 | 李四 | NULL | NULL | 90 |
+-----+--------+------+-------+--------+
6 rows in set (0.01 sec)
我靠,變成行了。但看起來(lái)依然很不友好!
(3)通過(guò)函數(shù)和group by字句優(yōu)化:
mysql> select sid,sname,sum(case when course='jsj' then mark end) jsj,sum(case when course='yuwen' then mark end) yuwen,sum(case when course='yingyu' then mark end) yingyu from vmark1 group by sid;
+-----+--------+------+-------+--------+
| sid | sname | jsj | yuwen | yingyu |
+-----+--------+------+-------+--------+
| 1 | 張三 | 90 | 65 | 80 |
| 2 | 李四 | 80 | 98 | 90 |
+-----+--------+------+-------+--------+
2 rows in set (0.00 sec)
“哇塞,要的就是這效果。別動(dòng)了。。就這樣”。運(yùn)營(yíng)妹子激動(dòng)的說(shuō)。
好吧。over.
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。