现在有三张表T1、T2、T3,现在要用select语句把T1的数据根相关条件插入到T2中,其中一个条件是T1的substr(T1.d,2,3)=T3.C的数据才能插入到T2中去
请问下面哪个方法比较好?
1.在select语句中直接用IN
insert into T2
slect
T1.a
,(case
when
substr(T1.D,4,4) in (select C from T3)
then 'good'
else 'error'
end)
from T1
2.用关联
slect
a1.a
,(case
when
substr(T1.D,4,4)=t3.c
then 'good'
else 'error'
end)
from T1
left join T3
on substr(T1.d,2,3)=T3.c 请问大侠用哪个方法比较好?效率高
请问下面哪个方法比较好?
1.在select语句中直接用IN
insert into T2
slect
T1.a
,(case
when
substr(T1.D,4,4) in (select C from T3)
then 'good'
else 'error'
end)
from T1
2.用关联
slect
a1.a
,(case
when
substr(T1.D,4,4)=t3.c
then 'good'
else 'error'
end)
from T1
left join T3
on substr(T1.d,2,3)=T3.c 请问大侠用哪个方法比较好?效率高
解决方案 »
- sql一列转一行显示
- sys.all_mviews这个系统视图的说明
- 怎么将SQL2008中的函数和存储过程导入到Oracle中
- 求助!!win7安装oracle 10g成功后出现问题!!!
- 关于Oracle Object for OLE
- 在CSDN发帖标题一定要长,嘿嘿!本人现在想往数据库方面发展,成为这方面的大牛都要什么基础,欢迎拍砖,呼呼?
- sqlldr 命令 入门级问题
- 关于复杂统计的问题!请赐教!
- 请问:这个统计查询的语句怎么写更有效率?
- 请问如何在pl/sql中取得操作系统的环境变量?
- 高手指点下 ,请进~~~~
- 急啊 各位高手请进哈~~~ 我把SQL中的存储过程 修改为 ORACLE中的存储过程 声明报错!! 请指点!!!!
T1.a
,(case
when
substr(T1.D,4,4) in (select C from T3)
then 'good '
else 'error '
end)
from T1
这样选出的数据不时你想要插入的数据吧. 只是选出符合条件插入的数据. 标志为good.否则为error了.
insert into T2
slect
T1.a,
T3.c,
from T1 left join T3 on substr(T1.d,2,3)=T3.C
where T3.c is not null;
2、按照代码:
insert into T2
slect
T1.a,
decode(T3.c,'good','','error')
from T1 left join T3 on substr(T1.d,2,3)=T3.C;