欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于select和insert into的组合解决思路

更新时间: 2014-01-05 02:11:18 责任编辑: Author_N1

 

关于Select和Insert into的组合

SELECT TD.CUSTOMER_NO,TD.CARE_MONTH
FROM table
WHERE
CUSTOMER_NO = '1' AND CARE_MONTH = '20120821'



INSERT INTO
table(CUSTOMER_NO,CARE_MONTH,REGISTER,REGIST_TIME,UPDATER,UPDATE_TIME)
VALUES('1','20120821')


可否用一个SQL文
实现SELECT查不出来数据的话
就把这条数据查到数据库里
--参考方法--
insert into table1(CUSTOMER_NO,CARE_MONTH) --列的数量一定要和插入的值个数一样
(select * 
 from (select  '1' id,'20120821' name ) a  --这个是MSSQL中的写法
 where not exists (SELECT 1 
                   FROM table1 
                   WHERE CUSTOMER_NO = '1' 
                         AND CARE_MONTH = '20120821')
                   )

以上在MSSQL中测试是没问题的


 

--参考方法--
引用:
SQL code


SELECT TD.CUSTOMER_NO,TD.CARE_MONTH
FROM table
WHERE
CUSTOMER_NO = '1' AND CARE_MONTH = '20120821'




SQL code


INSERT INTO
table(CUSTOMER_NO,CARE_MONTH,REGISTER,REGIST_TIM……

oracle有个merge可以帮助你哦,参加我的blog:
http://blog.csdn.net/linwaterbin/article/details/7831747
--参考方法--
最好使用merge吧,效率比较高。
--参考方法--
是Oracle数据库还是mysql数据库呢?
--参考方法--
 merge into security_clutter a 
using (select '90001' ls_code,'PWD' act_code ,'test' act_name 
      from dual ) b 
      on (a.act_code = b.act_code) 
    when matched then 
       update set a.act_name = b.act_name 
 when not matched then 
 insert values (b.ls_code, b.act_code, b.act_name, '', '') 
--参考方法--
楼上的when matched的应该可以跳过,直接when not matched...
--参考方法--
merge 可以解决!
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:11:18
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6748/
本文WWW.DOC100.NET DOC100.NET版权所有。