儲存過程構建交叉表語句

2021-08-30 14:18:50 字數 1039 閱讀 5932

test表

xm sl

1 王一 2

2 王一 5

3 張二 4

4 張二 5

5 張二 8

6 李三 2

7 李三 4

8 李三 15

9 李三 29

輸出的select語句

select xm,

sum(case xm

when '王一' then

slelse

0end) as 王一,

sum(case xm

when '張二' then

slelse

0end) as 張二,

sum(case xm

when '李三' then

slelse

0end) as 李三

from test

group by xm

語句執行結果

xm 王一 張二 李三

1 王一 7 0 0

2 張二 0 17 0

3 李三 0 0 50

declare

sqlstr varchar2(32767);

begin

sqlstr:='select xm,';

--構造字串

for v_cur in (select distinct xm from test)

loop

sqlstr:=sqlstr||'sum(case xm when '''|| v_cur.xm ||''' then sl else 0 end ) as '|| v_cur.xm ||',';

end loop;

sqlstr := substr(sqlstr,0,length(sqlstr)-1) ||' from test group by xm';

dbms_output.put_line(sqlstr);

--open p_cursor for sqlstr;

end;

用Crosstool工具構建交叉工具鏈

用crosstool工具構建交叉工具鏈 用crosstool cd home lsf 筆者使用的使用者名稱是 lsf tar xvzf crosstool 0.43.tar.gz cd crosstool 0.43 cp demo powerpc.sh ppc 405.sh vi ppc 405.s...

用Crosstool工具構建交叉工具鏈

1.以root 身份,為 opt 賦操作許可權 cd chmod 777 opt 2 準備資源檔案 linux 2.6.10.tar.gz binutils 2.15.tar.bz2 gcc 3.3.6.tar.gz glibc 2.3.2.tar.gz glibc linuxthreads 2.3...

儲存過程 語句

一 if else if else 類似選擇結構的語句,類似於程式語言中的if else。語法如下 if 表示式 then 執行語句 elseif 表示式 then 執行語句 else 執行語句 end if 根據分數列印等級,如下 drop procedure if existsproc test...