資料庫之橫表轉縱表 縱表轉橫表

2022-05-05 13:39:07 字數 2203 閱讀 1377

/*橫表變縱表或縱表變橫表

成績表如下

name course grade

張三 語文 95

張三 數學 90

張三 英語 89

李四 語文 92

李四 數學 88

李四 英語 97

變成姓名 語文 數學 英語

張三 95 90 89

李四 92 88 97

*/

--縱表轉橫表create table biao

(pname varchar(

10),

pcourse varchar (

10),

pgrade

int)

go insert into biao values('張三

','語文

','95

')

insert into biao values('張三

','數學

','90

')

insert into biao values('張三

','英語

','89

')

insert into biao values('李四

','語文

','92

')

insert into biao values('李四

','數學

','88

')

insert into biao values('李四

','英語

','97

')

select* from

biao

--下面輸入轉換方式

select

pname ,

sum(

case pcourse when '

語文'then pgrade else

0 end)as

語文, sum(

case pcourse when '

數學'then pgrade else

0 end)as

數學, sum(

case pcourse when '

英語'then pgrade else

0 end)as英語

--橫表轉縱表

--例2建立表2

create table biao1

(姓名 varchar(

20),

語文 int

,數學

int,

英語 int

) go

insert into biao1 values('張三

',95,90,89

) insert into biao1 values('李四

',92,88,97)

select * from

biao1

--下面輸入轉換方式

select * from

biao1

select 姓名 ,'語文'

as 課程,語文 as 成績 from

biao1 union all

select 姓名,'數學'

as 課程,數學 as 成績 from

biao1 union all

select 姓名,'英語'

as 課程,英語 as 成績 from

biao1

order by 姓名 desc

縱表轉橫表sql

縱表結構 fname ftype fvalue 小明 zaocan 10 小明 zhongcan 20 小明 wancan 5 轉換後的表結構 fname zaocan value zhongcan value wancan value 小明 10 20 5 縱表轉橫表sql如下 select fn...

Oracle橫表轉縱表

現有 scott 使用者下的 emp和 dept表 empempno number 4 ename varchar2 10 jobvarchar2 9 mgrnumber 4 hiredate date salnumber 7,2 comm number 7,2 deptno number 2 de...

資料庫橫表 縱表

橫表表結構 主鍵 欄位1 欄位2 欄位3。縱表表結構 主鍵 字段 字段值 字段 為字段1 欄位2 欄位3.縱表 橫表優劣對比 1.縱表在使用時由於行數過多,統計使用者數或對使用者分檔時需要進行group by操作,效能低下,且操作不便,為提高效能,通常對縱表進行彙總,形成橫表。2.資料探勘時用到的寬...