/*橫表變縱表或縱表變橫表
成績表如下
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建立表2create 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.資料探勘時用到的寬...