2015-10-14 110 views
-3

我有一些问题,此功能:如何实现SELECT IF(EXISTS(),,)

SELECT IF(EXISTS(SELECT * FROM University WHERE Name = 'ABC'),SELECT * FROM University ,NOTHING) 

而且

IF EXISTS (SELECT * FROM University WHERE Name = 'ABC') 
SELECT * FROM University 

哪里是错误?

谢谢。

+1

什么问题呢? – user1666620

+0

@ user1666620这是行不通的,我不知道为什么。我看到这个帖子:[链接](http://stackoverflow.com/questions/14072140/using-if-else-statement-based-on-count-to-execute-different-insert-statements) –

+0

@easy_peasy“Doesn '不工作'是关于你可以给“什么是问题”最无用的答案。不工作如何?你有错误信息吗?你得到错误的结果?什么都没有发生? – Tim

回答

1

尝试以下:

INSERT INTO University 
(Id, Name) 
SELECT 1, 'DEF' 
WHERE 
    EXISTS (
     SELECT * FROM University WHERE Name = 'ABC' 
    ); 

这应该插入一行到University表,其中有一个名为abc的记录。

1

如果我理解正确,您可以尝试以下方法:

create table univ(id int,name text); 
insert into univ values (1,'ABC'); 

IF ELSE可以

do 
$$ 
begin 
if exists(select * from univ where name = 'ABC') then 
insert into univ values (2,'something'); 
else 
insert into univ values (3,'something else'); 
end if; 
end; 
$$ 

所以结果select * from univ

id name  
-- --------- 
1 ABC  
2 something