0 0

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个答案 按时间排序 按投票排序

0 0

采纳的答案

上正则表达式好些?

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
0 0

可以用exists啊

2013年4月20日 18:41
0 0

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
0 0

问题好生奇怪耶!

2013年4月20日 13:17
0 0

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

相关推荐

    Oracle中的select into

    select valueA,valueB into tableB from tableA; 上面这句语句的意思是将tableA表中的valueA和valueB字段的值和结构添加到tableB中,tableB表需不存在。 在Oracle中select into的等价用法 create table tableB as ...

    Oracle各种select查询语法

    create table emp_bak as select * from emp; 该语句将创建一个备份表emp_bak,并将emp表中的所有记录复制到emp_bak表中。 这些语句只是 Oracle select 查询语法的基础部分,使用这些语句可以完成许多复杂的查询...

    oracle select top的方法

    在Oracle数据库中,标准SQL语法并不直接支持类似于`SELECT TOP 100 * FROM table_a`这样的语句来直接获取表中的前N行数据。然而,在实际业务场景中,这种需求却十分常见。例如,我们可能需要获取最近的100次登录记录...

    数据库oracle for update of和for update的区别

    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`语句是最常用也是最核心的操作之一。本文将深入探讨Oracle中`SELECT`语句的各种用法,并结合实际示例进行讲解,帮助读者全面掌握这一重要技能。 ####...

    oracle之select查询

    SELECT * FROM table_name LIMIT ?, ?; ``` 其中,第一个问号表示起始行号(通常从0开始),第二个问号表示每页显示的记录数。 而在Oracle中,分页查询则需要更复杂的嵌套查询结构,如下所示: ```sql SELECT * ...

    oracle常用经典SQL查询

    - 在`SELECT`、`FROM`或`WHERE`子句中嵌套查询,如`SELECT * FROM table_name WHERE column IN (SELECT column FROM another_table);` 6. **集合并集操作**: - `UNION`:合并两个查询的结果,去除重复行,如`...

    in和exists的区别

    WHERE Table1.a IN (SELECT Table2.a FROM Table2) ``` 在这种情况下,子查询`SELECT Table2.a FROM Table2`会先执行,生成一个结果集,然后主查询会检查`Table1`中的每个`a`字段是否在子查询生成的列表中。 效率上...

    oracle常用查询语句示例

    WHERE column1 NOT IN (SELECT column1 FROM table2); ``` 此外,Oracle还支持集合操作,如并集(UNION),交集(INTERSECT)和差集(MINUS): ```sql -- 并集:返回两个查询结果的唯一行 SELECT column FROM ...

    ORACLE常用SQL语句大全.pdf

    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更改表空间(table、index、lob) 在Oracle数据库管理中,更改表空间是一项重要的维护任务,尤其是在需要重新组织数据或优化存储时。本文将详细介绍如何通过SQL命令来更改表空间中的表(table)、索引...

    oracle中exists_和in的效率问题详解

    IN 的语法结构为:`SELECT * FROM table_name WHERE column_name IN (subquery)` 在使用 IN 时,需要注意以下几点: 1. IN 的子查询必须返回一个结果集,用于与外部查询进行比较。 2. IN 只关心子查询的结果集是否...

    Oracle数据库学习日记-实用性最强的Oracle学习总结.docx

    - `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);` **...

    Oracle常见用法

    - **使用`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`列...

    Oracle常用的和表(Table)相关的命令

    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 ...

    oracle nested table demo

    FROM orders, TABLE(line_items) item; ``` 这将返回订单ID、每个商品的名称和价格。 嵌套表的用途: 嵌套表在处理具有内嵌结构的数据时非常有用,例如订单中的商品列表、员工的项目分配等。它们提供了更灵活的...

    Oracle学习

    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

    标题中的“ORC_SELECT.rar_oracle_select orac”暗示了我们关注的是Oracle数据库中的查询操作,特别是关于SELECT语句的复杂使用。描述中提到的“多联合复杂的SQL语句,实现(+)=(+)的方法”是指Oracle 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...

Global site tag (gtag.js) - Google Analytics