decode (expr, comp1, value1,
comp2, value2,
......
default)
select decode('abc','a',1,
'b',2,
'abc',3,
-1) exp from dual;
exp
-----
3
comp2, value2,
......
default)
select decode('abc','a',1,
'b',2,
'abc',3,
-1) exp from dual;
exp
-----
3
调试欢乐多
------------------------------------------------
DECLARE
v_Major students.major%TYPE;
v_CourseName VARCHAR2(10);
BEGIN
SELECT major
INTO v_Major
FROM students
WHERE ID = 10011; IF v_Major = 'Computer Science' THEN
v_CourseName := 'CS 101';
ELSIF v_Major = 'Economics' THEN
v_CourseName := 'ECN 203';
ELSIF v_Major = 'History' THEN
v_CourseName := 'HIS 101';
ELSIF v_Major = 'Music' THEN
v_CourseName := 'MUS 100';
ELSIF v_Major = 'Nutrition' THEN
v_CourseName := 'NUT 307';
ELSE
v_CourseName := 'Unknown';
END IF; DBMS_OUTPUT.PUT_LINE(v_CourseName);
END;
/
DECLARE
v_Major students.major%TYPE;
v_CourseName VARCHAR2(10);
BEGIN
SELECT major
INTO v_Major
FROM students
WHERE ID = 10011; CASE v_Major
WHEN 'Computer Science' THEN
v_CourseName := 'CS 101';
WHEN 'Economics' THEN
v_CourseName :='ECN 203';
WHEN 'History' THEN
v_CourseName := 'HIS 101';
WHEN 'Music' THEN
v_CourseName := 'MUS 100';
WHEN 'Nutrition' THEN
v_CourseName := 'NUT 307';
ELSE
v_CourseName := 'Unknown';
END CASE; DBMS_OUTPUT.PUT_LINE(v_CourseName);
END;
/DECLARE
v_TestVar NUMBER := 1;
BEGIN
CASE v_TestVar
WHEN 2 THEN DBMS_OUTPUT.PUT_LINE('Two!');
WHEN 3 THEN DBMS_OUTPUT.PUT_LINE('Three!');
WHEN 4 THEN DBMS_OUTPUT.PUT_LINE('Four!');
END CASE;
END;
/DECLARE
v_TestVar NUMBER := 1;
BEGIN
<<MyCase>>
CASE v_TestVar
WHEN 1 THEN DBMS_OUTPUT.PUT_LINE('One!');
WHEN 2 THEN DBMS_OUTPUT.PUT_LINE('Two!');
WHEN 3 THEN DBMS_OUTPUT.PUT_LINE('Three!');
WHEN 4 THEN DBMS_OUTPUT.PUT_LINE('Four!');
END CASE MyCase;
END;
/DECLARE
v_Test1 NUMBER := 2;
v_Test2 VARCHAR2(20) := 'Goodbye';
BEGIN
CASE
WHEN v_Test1 = 1 THEN
DBMS_OUTPUT.PUT_LINE('One!');
DBMS_OUTPUT.PUT_LINE('Another one!');
WHEN v_Test1 > 1 THEN
DBMS_OUTPUT.PUT_LINE('> 1!');
DBMS_OUTPUT.PUT_LINE('Still > 1!');
WHEN v_Test2 = 'Goodbye' THEN
DBMS_OUTPUT.PUT_LINE('Goodbye!');
DBMS_OUTPUT.PUT_LINE('Adios!');
ELSE
DBMS_OUTPUT.PUT_LINE('No match');
END CASE;
END;
/
------------------------------------------------
declare @aa char(2)
declare @bb char(2)declare @ccc tinyint
declare @ddd tinyint
declare @eee tinyintif @aa = 'aa'
begin
if @bb = '1'
set @ccc = 1
if (@bb = '2' or @bb = '3')
set @ccc = 2
if @bb = '4'
set @ccc = 3
endif @aa = 'bb'
begin
if (@bb = '1' or @bb = '2')
set @ddd = 1
if @bb = '3'
set @ddd = 2
if @bb = '4'
set @ddd = 3
end
if @aa = 'cc'
begin
if (@bb = '1' or @bb = '2')
set @ddd = 1
if @bb = '3'
set @ddd = 2
if @bb = '4'
set @ddd = 3
end就是完成这样的功能,请各位大侠看看