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 top的方法

    Oracle SQL语法不支持select top 100 * from table_a之类的top语法,当然可以使用rownum取出多少行来看,但是如果加上排序还使用这个rownum的话,大部分情况是,先取出rownum行记录,然后排序再显示,这和我们要求的...

    oracle 10g问题总结

     select sum(bytes)/(1024*1024) tablesize from user_segments  where segment_name='ZW_YINGYEZ'  查看放在ORACLE的内存区里的表  select table_name,cache from user_tables where instr(cache,'Y')>0  ...

    Oracle分组函数之ROLLUP的基本用法

    create table dept as select * from scott.dept; create table emp as select * from scott.emp; 业务场景:求各部门的工资总和及其所有部门的工资总和 这里可以用union来做,先按部门统计工资之和,然后在统计...

    Oracle练习.txt

    SQL>select * from table; SQL >spool off; 12.如何在sqlplus下改变字段大小? alter table table_name modify (field_name varchar2(100)); 改大行,改小不行(除非都是空的) 13.如果修改表名? alter table old_...

    oracle分页操作

    FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM ) WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM 和RN >= 21控制分页查询的每页的范围。 上面给出的这个分页...

    oracle sql of extracting table structure

    * Function : to extract the structure of a table * * Author : Richard Wang * * Date : 2011-08-30 * * Version : 0.1 * ------------------------------------------------------------------------------*/ ...

    oracle跨库查询

    select * from _table_name@_link_name */ create database link link_zhangli connect to zhangli identified by zhangli using' (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ...

    oracle11g密码敏感取消

    select 'alter table '||owner||'.'||table_name||' allocate extent;' from dba_tables where num_rows=0 ; --数据库实例用户密码期限取消:无限期 select * from dba_profiles where profile='DEFAULT' and ...

    解析oracle对select加锁的方法以及锁的查询

    解析oracle对select加锁的方法以及锁的查询一、oracle对select加锁方法 代码如下:create table test(a number,b number);insert into test values(1,2);insert into test values(3,4);insert into test values(8,9);...

    Oracle 拼音检索函数 已对性能和频度优化 调用速度快

    获取汉字首字母拼音 Oracle 拼音检索函数 已对性能和频度优化 调用速度快。select f_pinyin('中国') from dual; select * from table where f_pinyin(field) like '%%';

    sql – Oracle中匿名TABLE/VARRAY类型示例详解

    SELECT * FROM TABLE(STRINGS('a', 'b', 'c')) SELECT * FROM TABLE(NUMBERS(1, 2, 3)) 显然,我可以为上述声明我自己的类型.我可以在TABLE和VARRAY之间进行选择.例如: CREATE TYPE STRINGS AS TABLE OF VARCHAR2...

    Oracle事例

    delete from a where no in (select no from b); 14、查询从多少行到多少行的记录(可以用在web开发中的分页显示) select * from ( select rownum row_id,b.* from (select a.* from sys_oper a) b ) where row_...

    某知名公司内部ORACLE培训资料(如果你看后觉得不行,可以损我,人格担保)

    查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    SQL> select * from role_role_privs;//查询授予另一角色的角色 SQL> select * from DBA_tab_privs;//查询直接授予用户的对象权限 SQL> select * from dba_role_privs;//查询授予用户的角色 SQL> select * from dba_...

    oracle完全手册

    SELECT table_name FROM user_tables; SELECT * FROM dept; SELECT deptno,dname FROM dept; --显示EMP表中工资高于2000的雇员 SELECT ename,sal FROM emp WHERE sal>2000; --显示EMP表中雇员名字是KING的雇员信息 ...

    Oracle 中 table 函数的应用浅析

    表函数可接受查询语句或游标作为输入参数,并... FROM TABLE (myfunction (CURSOR (SELECT * FROM mytab))); 2. 利用两个实体化视图(或表)作为样板数据 CREATE MATERIALIZED VIEW sum_sales_country_mv BUILD IMME

    Oracle对表的数据拆分和合并

     select t.* from temp_table t; ID NAME CODE 1 A 10 2 B 20 3 C 30 4 A 40 5 A 50 6 A|B|C 60  我们将NAME=A的数据合并,使用Oracle函数WM_CONCAT(),SQL及结果如下:  select t....

    数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)

    Oracle查询结果集,随机排序 代码如下:select * from table1 order by dbms_random.value(); MySQL随机查询出一条记录: 代码如下: — 下面的查询语句效率高,不要使用 SELECT * FROM table1 ORDER BY rand() LIMIT ...

    Oracle中实现MySQL show index from table命令SQL脚本分享

    create table t as select * from hr.employees; create index inx_t1 on t(employee_id,first_name desc,last_name); create index inx_t2 on t(job_id,hire_date); 显示该表所有索引的信息。 以dba登录 代码如下...

Global site tag (gtag.js) - Google Analytics