CREATE OR REPLACE PROCEDURE as_getInfoBy_Year(stateYear in varchar2, --要查询的年份 info out pag_asset.Asset_CURSOS) AS
--声明变量
A_ProGrameStype0 int;
A_ProGrameStype1 int;
A_ProGrameStype2 int;
A_ProGrameStype3 int;
As_Stype1 int;
As_Stype2 int;
temp_A int;--用于存储 A_ProGrameStype
temp_AS int;--用于存储 As_Stype
i int;--循环初始值
BEGIN
--变化初始化
A_ProGrameStype0 := 0;
A_ProGrameStype1 := 0;
A_ProGrameStype2 := 0;
A_ProGrameStype3 := 0;
As_Stype1 := 0;
As_Stype2 := 0;
temp_A := 0;--用于存储 A_ProGrameStype
temp_AS := 0;--用于存储 As_Stype
i := 0;--循环初始值
for i in 1..31 loop
stateYear:=stateYear+i;
SELECT A_ProGrameStype,
CASE
WHEN A_ProGrameStype=0
A_ProGrameStype0=A_ProGrameStype0+1
WHEN A_ProGrameStype=1
A_ProGrameStype1=A_ProGrameStype1+1
WHEN A_ProGrameStype=2
A_ProGrameStype2=A_ProGrameStype2+1
ELSE A_ProGrameStype3=A_ProGrameStype+3
END A_ProGrameStype
FROM LJD
END loop;
END getInfoBy_Year
关键是 CASE 的地方,我不知道怎么学才对啊
--声明变量
A_ProGrameStype0 int;
A_ProGrameStype1 int;
A_ProGrameStype2 int;
A_ProGrameStype3 int;
As_Stype1 int;
As_Stype2 int;
temp_A int;--用于存储 A_ProGrameStype
temp_AS int;--用于存储 As_Stype
i int;--循环初始值
BEGIN
--变化初始化
A_ProGrameStype0 := 0;
A_ProGrameStype1 := 0;
A_ProGrameStype2 := 0;
A_ProGrameStype3 := 0;
As_Stype1 := 0;
As_Stype2 := 0;
temp_A := 0;--用于存储 A_ProGrameStype
temp_AS := 0;--用于存储 As_Stype
i := 0;--循环初始值
for i in 1..31 loop
stateYear:=stateYear+i;
SELECT A_ProGrameStype,
CASE
WHEN A_ProGrameStype=0
A_ProGrameStype0=A_ProGrameStype0+1
WHEN A_ProGrameStype=1
A_ProGrameStype1=A_ProGrameStype1+1
WHEN A_ProGrameStype=2
A_ProGrameStype2=A_ProGrameStype2+1
ELSE A_ProGrameStype3=A_ProGrameStype+3
END A_ProGrameStype
FROM LJD
END loop;
END getInfoBy_Year
关键是 CASE 的地方,我不知道怎么学才对啊
(
case when 条件1 then 值1
when 条件1 then 值2
......
else 值N
end
) AS 列名(字段)就是 if... else if..else if...else...
(CASE
WHEN A_ProGrameStype=0
A_ProGrameStype0=A_ProGrameStype0+1
WHEN A_ProGrameStype=1
A_ProGrameStype1=A_ProGrameStype1+1
WHEN A_ProGrameStype=2
A_ProGrameStype2=A_ProGrameStype2+1
ELSE A_ProGrameStype3=A_ProGrameStype+3
END)AS A_ProGrameStype
可是这样写也不对啊
就好像这个案例
使用了CASE , WHEN就是当什么状态或符合某种条件就执行
Then 以后的处理就好像 if(条件){
//符合处理
}else
{
//不符合处理
}
反过来看就是
When 条件
Then
// 符合条件处理
ELSE
// 不符合条件处理