sql以欄位重新建立表

2021-09-01 08:25:49 字數 1684 閱讀 7092

有report表:它裡面 id name state customerid 四個字段,id為主鍵 ,customerid為外來鍵

state 0, 1,2 /

/ 未使用 更新 刪除

根據customerid寫一條sql (注意是一條)生成表的結構如下:

customerid state0 state1 state2

001 11 212 333

002 15 545 3

實際上把它看作:select costomerid,count() as status_0,...

from report

group by  costomerid

select customerid,   

count(case state when 0 then state else null end) as status_0,

count(case state when 1 then state else null end) as status_1,

count(case state when 2 then state else null end) as status_2

from report group by customerid

建立表:

create table report

( id int(10) not null auto_increment,

username varchar(20),

state int(10),

customerid int(10),

primary key(id)

)insert into report(username,state,customerid)

values

('linux1',0,1),

('linux2',1,1),

('linux3',2,1),

('linux4',0,1),

('linux5',1,1),

('linux6',2,1),

('linux7',2,1),

('linux8',2,1),

('linux1',0,2),

('linux2',2,2),

('linux3',2,2),

('linux4',2,2),

('linux5',1,2),

('linux6',2,2),

('linux7',2,2),

('linux8',2,2),

('linux1',0,3),

('linux2',1,3),

('linux3',2,3),

('linux4',0,3),

('linux5',1,3),

('linux6',2,3),

('linux7',2,3),

('linux8',2,3),

('linux1',2,3),

('linux2',2,3),

('linux3',2,3),

('linux4',0,3),

('linux5',1,3),

('linux6',2,1),

('linux7',1,1),

('linux8',1,1);

重新建立em

進行資料庫備份,會導致em無法開啟的結果。需要重新建立em。em無法開啟的解決方案如下 也適用於其他因素造成的em無法開啟 1,進入cmd視窗 注意win7系統需用管理員身份開啟cmd視窗 2,刪除em 命令如下 emca repos drop 按照資料庫的基本資訊填寫正確的資訊 3,建立em 命令...

Oracle重新建立臨時表空間

1.建立中轉臨時表空間 create temporary tablespace temp1 tempfile data dbfile temp 02.dbf size 512m reuse autoextend on next 1m maxsize unlimited 2.改變預設臨時表空間為剛剛建...

如何重新建立ClassWizard

去年開始改用vs2008寫程式了,但有些同事還在用vc6所有有時候難免會有需要把vs2008程式搬回vc6中進行編譯的情況.vc6新建個工程,將所有的.cpp h檔案全部拷入後編譯,基本就能使用.但發現個小問題,就是classwizard無法正常執行.之前的所有對映都無法在classwizard中找...