您的位置:首页 > 数据库

PL/SQL where 条件中使用case

2014-05-05 22:46 281 查看
--建测试表--

CREATE TABLE testwhere

(

testid NUMBER,

testname VARCHAR(50)

);

CREATE TABLE testwhere_bak

(

testid NUMBER,

testname VARCHAR(50)

);

--插入测试数据--

INSERT INTO testwhere(testid,testname)

VALUES(1,'小明');

INSERT INTO testwhere(testid,testname)

VALUES(2,'小红');

INSERT INTO testwhere(testid,testname)

VALUES(3,'小东');

COMMIT;

--测试程序段--

DECLARE

FLAG CHAR(1) := 'Y';

V_NAME VARCHAR(50);

BEGIN

INSERT INTO TESTWHERE_BAK

SELECT T.TESTID, T.TESTNAME

FROM TESTWHERE T

WHERE 1 = 1

AND (CASE

WHEN FLAG = 'Y' THEN

T.TESTID

ELSE

NULL

END) < 3;

COMMIT;

EXCEPTION

WHEN OTHERS THEN

NULL;

END;

SELECT * FROM TESTWHERE_BAK;

--查到两笔数据--
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: