VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

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)