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;
--查到两笔数据--
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;
--查到两笔数据--
相关文章推荐
- 请教一下各位大侠,关于sql语句中使用case替换where条件的查询出现空行的原因
- pl/sql中在where in()子句里怎么使用字符串变量来传递查询条件?
- sql查询调优之where条件排序字段以及limit使用索引的奥秘
- PL/SQL Developer 使用中文条件查询时无数据的解决方法(转)
- pl/sql developer 查询语句无法使用中文条件
- sql:case when的各种用法及怎么把case when放在where里面作为条件表达式
- 尽可能避免在where条件或者join时的on条件中使用case函数(T-SQL)
- SQL/PLSQL:在where条件中写case when和decode
- sql 语句中使用条件判断case then else end
- ORACLE PL/SQL 实例精解之第五章 条件控制:CASE语句
- sql查询调优之where条件排序字段以及limit使用索引的奥秘
- SQL语句Where中使用别名作为判断条件
- Oracle(25)pl/sql编程 触发器及管理触发器及case...end case使用
- Sql Server where case 满足条件执行 不满足 不做任何条件查询
- SQL语句Where中使用别名作为判断条件
- SQL使用case when 动态的修改where条件
- SQL中条件和比较关键字Case的使用方法(case的结果就是得到了一个值)
- ORACLE使用PL/SQL做条件调试
- SQL中条件和比较关键字Case的使用方法(case的结果就是得到了一个值)
- 使用反射让linq实现动态查询, 类似拼接sql语句的where 条件