-
oracle in (select a from table)5
问题语句:
select SUBJECTCODE,subjectname,supercode from BO_CW_SUBJECT where supercode in (select SUBJECTCODE from BO_FLOW_SUBJECT_S where FLOWINSTANCEID=28273)
解析:
(select SUBJECTCODE from BO_FLOW_SUBJECT_S where FLOWINSTANCEID=28273) 此语句的结果集为 31,32,怎样才能与上面一条sql语句结合起来使用呢
谢谢!2013年4月20日 12:26
5个答案 按时间排序 按投票排序
-
采纳的答案
上正则表达式好些?
SELECT t1.SUBJECTCODE, t1.subjectname, t1supercode FROM BO_CW_SUBJECT t1, BO_FLOW_SUBJECT_S t2 WHERE t2.FLOWINSTANCEID=28273 AND regexp_like(t2.SUBJECTCODE, '(^|,)' || t1.supercode || '(,|$)')
未测试
这种做法会有效率问题的。一定是全表走查的。2013年4月20日 14:53
-
1分两条sql可能更快
1、取(select SUBJECTCODE from BO_FLOW_SUBJECT_S where FLOWINSTANCEID=28273) 然后程序中split
2、再in查一次 效率高
select SUBJECTCODE,subjectname,supercode from BO_CW_SUBJECT where supercode in(?,?)
2、like 缺点不走索引
where concat(supercode, ',' , '%') like (子查询) or concat(',', supercode, '%') like (子查询)
既因为你的格式是 1,2,3 所以两种情况 1, ,3 如果你存储的格式是1,2,3, 则可以直接1, 2, 3, 匹配
2013年4月20日 14:35
-
select t1.SUBJECTCODE,t1.subjectname,t1supercode from BO_CW_SUBJECT t1,BO_FLOW_SUBJECT_S t2 where t2.FLOWINSTANCEID=28273 and t1.supercode = t2.SUBJECTCODE
2013年4月20日 13:11
相关推荐
select valueA,valueB into tableB from tableA; 上面这句语句的意思是将tableA表中的valueA和valueB字段的值和结构添加到tableB中,tableB表需不存在。 在Oracle中select into的等价用法 create table tableB as ...
create table emp_bak as select * from emp; 该语句将创建一个备份表emp_bak,并将emp表中的所有记录复制到emp_bak表中。 这些语句只是 Oracle select 查询语法的基础部分,使用这些语句可以完成许多复杂的查询...
在Oracle数据库中,标准SQL语法并不直接支持类似于`SELECT TOP 100 * FROM table_a`这样的语句来直接获取表中的前N行数据。然而,在实际业务场景中,这种需求却十分常见。例如,我们可能需要获取最近的100次登录记录...
SELECT * FROM Table1 a JOIN Table2 b ON a.pkid = b.pkid FOR UPDATE OF a.pkid; ``` 这条语句仅锁定`Table1`中的`pkid`列,`Table2`中的任何列都不会被锁定。 3. **NOWAIT选项**: - `NOWAIT`选项用于`FOR ...
### Oracle中的SELECT语句大全 在Oracle数据库管理中,`SELECT`语句是最常用也是最核心的操作之一。本文将深入探讨Oracle中`SELECT`语句的各种用法,并结合实际示例进行讲解,帮助读者全面掌握这一重要技能。 ####...
SELECT * FROM table_name LIMIT ?, ?; ``` 其中,第一个问号表示起始行号(通常从0开始),第二个问号表示每页显示的记录数。 而在Oracle中,分页查询则需要更复杂的嵌套查询结构,如下所示: ```sql SELECT * ...
- 在`SELECT`、`FROM`或`WHERE`子句中嵌套查询,如`SELECT * FROM table_name WHERE column IN (SELECT column FROM another_table);` 6. **集合并集操作**: - `UNION`:合并两个查询的结果,去除重复行,如`...
WHERE Table1.a IN (SELECT Table2.a FROM Table2) ``` 在这种情况下,子查询`SELECT Table2.a FROM Table2`会先执行,生成一个结果集,然后主查询会检查`Table1`中的每个`a`字段是否在子查询生成的列表中。 效率上...
WHERE column1 NOT IN (SELECT column1 FROM table2); ``` 此外,Oracle还支持集合操作,如并集(UNION),交集(INTERSECT)和差集(MINUS): ```sql -- 并集:返回两个查询结果的唯一行 SELECT column FROM ...
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 本文档提供了 Oracle 中常用的 SQL 语句,涵盖了数据库、表、索引、视图等方面的操作,并且介绍了一些高级查询运算符的使用方法。
### Oracle更改表空间(table、index、lob) 在Oracle数据库管理中,更改表空间是一项重要的维护任务,尤其是在需要重新组织数据或优化存储时。本文将详细介绍如何通过SQL命令来更改表空间中的表(table)、索引...
IN 的语法结构为:`SELECT * FROM table_name WHERE column_name IN (subquery)` 在使用 IN 时,需要注意以下几点: 1. IN 的子查询必须返回一个结果集,用于与外部查询进行比较。 2. IN 只关心子查询的结果集是否...
- `SELECT * FROM table WHERE column IN (SELECT values FROM other_table);` **8.3 使用any操作符查询** - **语法示例:** - `SELECT * FROM table WHERE column ANY (SELECT values FROM other_table);` **...
- **使用`IN`查询**:`SELECT * FROM tableA WHERE a.name IN ('1', '2', '3')`,查找`name`列中值为'1','2'或'3'的行。 - **空值检查**:`SELECT * FROM tableA WHERE id IS NULL`或`IS NOT NULL`,检查`id`列...
sql> create global temporary table xay_temp as select * from xay on commit preserve rows / on commit delete rows; ``` **解析**: - `create global temporary table`: 创建全局临时表。 - `on commit ...
FROM orders, TABLE(line_items) item; ``` 这将返回订单ID、每个商品的名称和价格。 嵌套表的用途: 嵌套表在处理具有内嵌结构的数据时非常有用,例如订单中的商品列表、员工的项目分配等。它们提供了更灵活的...
SELECT * FROM table_a RIGHT OUTER JOIN table_b ON table_a.id = table_b.id; ``` - **全外连接**(Full Outer Join) - **功能**:返回左表和右表中的所有行,无论是否匹配;对于未匹配的行,另一侧使用NULL...
标题中的“ORC_SELECT.rar_oracle_select orac”暗示了我们关注的是Oracle数据库中的查询操作,特别是关于SELECT语句的复杂使用。描述中提到的“多联合复杂的SQL语句,实现(+)=(+)的方法”是指Oracle SQL中的左...
- 示例: `SELECT * FROM table1 WHERE column_name IN (SELECT column_name FROM table2);` **3.2 外连接** - 包括LEFT JOIN和RIGHT JOIN。 - 示例: `SELECT * FROM table1 LEFT JOIN table2 ON table1.column_name...