WHERE条件中IN支持“单引号+常量”
功能描述
Vastbase在Oracle兼容模式下,支持where条件中in后面只跟一个条件时,使用单引号+常量
的条件。此处常量可以是数值型或字符型,当为数值型时可省略单引号。
注意事项
- 该功能仅在数据库兼容模式为Oracle时支持(即数据库实例初始化时指定DBCOMPATIBILITY='A')。
- in后面接的单引号里面是常量,这里的常量可以是数值型,也可以是字符型。暂不支持单引号内加括号或者子查询语句或者表达式等复杂情况。
语法格式
无。
示例
示例1: 增删查改语句中where条件in后面不加括号。
1、创建测试和表并插入数据。
create table test_t(id int, name varchar, age int);
insert into test_t values (1, 'Bob',17);
insert into test_t values (2, 'Mark',28);
insert into test_t values (3, 'Lily',17);
insert into test_t values (4, 'Mike',17);
insert into test_t values (5, 'John',18);
2、执行增删改语句(where条件in后面不加括号)。
insert into test_t select * from test_t where id in 5;
delete from test_t where id in 3;
update test_t set name = 'Mark2' where id in 2;
3、查询id为2的数据。
select * from test_t where id in '2';
4、查询结果。
select * from test_t order by id;
结果返回如下:
id | name | age
----+-------+-----
1 | Bob | 17
2 | Mark2 | 28
4 | Mike | 17
5 | John | 18
5 | John | 18
(5 rows)
示例2: 存储过程中where条件in后面不加括号。
1、创建测试和表并插入数据。
create table test_t(id int, name varchar);
insert into test_t values (1, 'Bob');
insert into test_t values (2, 'Mark');
insert into test_t values (3, 'Lily');
2、创建存储过程。
CREATE OR REPLACE PROCEDURE pro1() as
DECLARE
v_name text;
BEGIN
select name into v_name from test_t where id in 2;
raise info 'v_name:%', v_name;
END;
/
3、调用存储过程。
call pro1();
返回结果为:
INFO: v_name:Mark
pro1
------
(1 row)