合并sql语句

来源:百度知道 编辑:UC知道 时间:2024/05/09 18:01:57
第一句:insert into metadata_journal(PUTDATE,INDEXED,TITLE,AUTHOR,JOURNALNAME,ISSN,YEAR,VOLUME,ISSUE) value('2009-04-30 10:05:21.0','F','有机垃圾单级高固体厌氧消化的中试实验','冯磊,Bernhard,Raninger,李润东,李延吉','环境科学学报','0253-2468','2009','','3') ;
第二句:SELECT * FROM metadata_journal where ISSN ='0253-2468' AND TITLE='有机垃圾单级高固体厌氧消化的中试实验';
请不要问为什么只要答案,要求能运行。
两个语句能分别执行。 只要第二句没有内容,就执行第一句,我写的(执行不出来):insert into metadata_journal(PUTDATE,INDEXED,TITLE,AUTHOR,JOURNALNAME,ISSN,YEAR,VOLUME,ISSUE) value('2009-04-30 10:05:21.0','F','有机垃圾单级高固体厌氧消化的中试实验','冯磊,Bernhard,Raninger,李润东,李延吉','环境科学学报','0253-2468','2009','','3') if not exists (SELECT * FROM metadata_journal where ISSN ='0253-2468' AND TITLE='有机垃圾单级高固体厌氧消化的中试实验');

楼主有两个错误:
1、value改为values
2、if not exists 后面就有执行语句,有如果就必须要有执行语句

if not exists (SELECT * FROM metadata_journal where ISSN ='0253-2468' AND TITLE='有机垃圾单级高固体厌氧消化的中试实验')
insert into metadata_journal
(PUTDATE,INDEXED,TITLE,AUTHOR,JOURNALNAME,ISSN,YEAR,VOLUME,ISSUE)
values
('2009-04-30 10:05:21.0','F','有机垃圾单级高固体厌氧消化的中试实验','冯磊,Bernhard,Raninger,李润东,李延吉','环境科学学报','0253-2468','2009','','3')

以上这样写法都会有一个判断,最简单方法。直接用

insert into metadata_journal
(PUTDATE,INDEXED,TITLE,AUTHOR,JOURNALNAME,ISSN,YEAR,VOLUME,ISSUE)

select
'2009-04-30 10:05:21.0','F','有机垃圾单级高固体厌氧消化的中试实验','冯磊,Bernhard,Raninger,李润东,李延吉','环境科学学报','0253-2468','2009','','3'
where
not exists (SELECT * FROM metadata_journal where ISSN ='0253-2468' AND TITLE='有机垃圾