SELECT FLOOR(LOT/4) INTO V_LOT FROM SFCMO WHERE MO='000026085816';
SELECT MOD(LOT,4) INTO V_MOD FROM SFCMO WHERE MO='000026085816';
SELECT MO INTO V_MO FROM SFCMO WHERE MO='000026085816'; FOR V_I IN 0..V_LOT-1 LOOP
....
END LOOP;
CASE
WHEN V_MOD=1 THEN
....
WHEN V_MOD=2 THEN
....
ELSE
.....
END CASE;以上为SQL大体结构,但是执行PROCEDURE后,发现CASE语句中的结果没有被执行出来。语句结构有什么问题么???
SELECT MOD(LOT,4) INTO V_MOD FROM SFCMO WHERE MO='000026085816';
SELECT MO INTO V_MO FROM SFCMO WHERE MO='000026085816'; FOR V_I IN 0..V_LOT-1 LOOP
....
END LOOP;
CASE
WHEN V_MOD=1 THEN
....
WHEN V_MOD=2 THEN
....
ELSE
.....
END CASE;以上为SQL大体结构,但是执行PROCEDURE后,发现CASE语句中的结果没有被执行出来。语句结构有什么问题么???
整个CASE都没有执行,实际上V_mode=2的。
只能在select子句和where条件中可以使用。
能举例说明下么,没太懂??
不能用来在函数中作为流转条件的判断。
流转条件是指什么啊??
只能在select子句和where条件中可以使用。
能举例说明下么,没太懂??
不能用来在函数中作为流转条件的判断。
流转条件是指什么啊??
举例如下,case when的用法有点类似decode:
SELECT CASE
WHEN 'A' = 'A' THEN
'AA'
ELSE
'AAA'
END
FROM DUAL
WHERE (CASE
WHEN 'A' = 'A' THEN
'AA'
ELSE
'AAA'
END) = 'AA'第二个“流转条件”的意思就是在存储过程中不能用case when作为条件判断的关键词,只能用if then语句。