測試資料準備
--pivot進行轉換的sql如下:建表--
drop table saleslist;
create
table
saleslist(
kehu
varchar2(20), --
客戶 shangpin varchar2(20), --
商品名稱
salesnum number(8) --
銷售數量
);--
插入資料
declare
--談幾個客戶
cursor lr_kh is
select regexp_substr('
張三、李四、王
五、趙六
','[^、]+
',1, level) kehu from
dual
connect
bylevel
<=4;
--進點貨cursor lr_sp is
select regexp_substr('
上衣、褲子、襪子、帽子
','[^、]+
',1, level) shangpin from
dual
connect
bylevel
<=4;
begin
--迴圈插入
for v_kh in
lr_kh loop
for v_sp in
lr_sp loop
insert
into
saleslist
select v_kh.kehu, v_sp.shangpin, floor(dbms_random.value(10,50)) from
dual;
endloop;
endloop;
commit
;end;
--查詢結果如下圖:行轉列select
*from
saleslist pivot(
max(salesnum) for shangpin in ( --
shangpin 即要轉成列的字段'上衣
'as 上衣, --
max(salesnum) 此處必須為聚合函式,'褲子
'as 褲子, --
in () 對要轉成列的每乙個值指定乙個列名'襪子
'as襪子, '帽子
'as帽子 )
) where1=
1; --
這裡可以寫查詢條件,沒有可以直接不要where
希望這個簡單的例子能夠對大家有幫助~~~~~~~~
SQL Server 中行轉列 列轉行
行轉列 create database test on primary name test.mdf filename d project test.mdf size 10mb,filegrowth 15 log on name test.ndf filename d project test.ldf...
SQL中行轉列 列轉行
sql行轉列 列轉行 這個主題還是比較常見的,行轉列主要適用於對資料作聚合統計,如統計某類目的商品在某個時間區間的銷售情況。整理測試資料 create table wyc test id int 32 not null auto increment name varchar 80 default n...
MySQL中行轉列與列轉行
mysql中行轉列與列轉行 行轉列,即為將mysql中原本同一列 字段 下的內容轉換為同一行的多個字段。如上圖一張成績表,進行如下轉換 1 行轉列轉換後,轉換後,變為如下顯示 明顯可以看出,此時將userid分為了一組,每組都有語文 數學 英語 政治這幾門課的成績。方式一 用if語句轉換 selec...