SQL數(shù)據(jù)橫向顯示轉(zhuǎn)換實例
在SQL數(shù)據(jù)庫中,有時查出的數(shù)據(jù)并不符合我們習(xí)慣的展示方式,需要將數(shù)據(jù)進行行列轉(zhuǎn)換以更好地呈現(xiàn)。下面通過一個實例介紹如何實現(xiàn)在SQL中將查詢結(jié)果橫向顯示。 打開SSMS并登錄數(shù)據(jù)庫首先,打開Micro
在SQL數(shù)據(jù)庫中,有時查出的數(shù)據(jù)并不符合我們習(xí)慣的展示方式,需要將數(shù)據(jù)進行行列轉(zhuǎn)換以更好地呈現(xiàn)。下面通過一個實例介紹如何實現(xiàn)在SQL中將查詢結(jié)果橫向顯示。
打開SSMS并登錄數(shù)據(jù)庫
首先,打開Microsoft SQL Server Management Studio(SSMS),并登錄到你要操作的數(shù)據(jù)庫中。
創(chuàng)建臨時表和插入測試數(shù)據(jù)
在新建的SQL查詢窗口中,輸入創(chuàng)建臨時表的SQL語句,包括姓名、科目和分數(shù)字段,并執(zhí)行插入測試數(shù)據(jù)的SQL語句。
```sql
create table 成績表(姓名 varchar(30), 科目 varchar(30), 分數(shù) int)
insert 成績表 select '張三', '語文', 88 union all select '張三', '數(shù)學(xué)', 92 union all select '張三', '英語', 79 union all select '李四', '語文', 68 union all select '李四', '數(shù)學(xué)', 75 union all select '李四', '英語', 80
```
實現(xiàn)數(shù)據(jù)橫向顯示
執(zhí)行以下SQL語句可以將原本豎向存儲的數(shù)據(jù)轉(zhuǎn)換為橫向顯示:
```sql
select 姓名,
sum(case when 科目'語文' then 分數(shù) end) as '語文',
sum(case when 科目'數(shù)學(xué)' then 分數(shù) end) as '數(shù)學(xué)',
sum(case when 科目'英語' then 分數(shù) end) as '英語'
from 成績表
group by 姓名
```
通過以上SQL語句中的`CASE WHEN`結(jié)合`GROUP BY`語句,可以將數(shù)據(jù)按照姓名進行匯總,并將不同科目的分數(shù)橫向顯示出來。
總結(jié)
通過以上步驟,我們實現(xiàn)了將SQL查詢結(jié)果從豎向顯示轉(zhuǎn)換為橫向顯示的操作。首先登錄SSMS,然后新建查詢窗口,創(chuàng)建臨時表并插入測試數(shù)據(jù),最后使用`CASE WHEN`結(jié)合`GROUP BY`語句進行行列轉(zhuǎn)換,以達到橫向展示數(shù)據(jù)的效果。這個方法能夠幫助我們更直觀地查看和分析數(shù)據(jù),提高工作效率。