查询以查找是否存在唯一记录,使用sql开发人员返回true或false



我想要一个查询来查找数据库中是否存在唯一记录。例如:

SELECT externaleventid 
  FROM event 
 WHERE externaleventid = "XYZ". 

如果"XYZ"不存在,则应返回false,如果存在,则返回true。我使用的是sql developer和eclipse。我试过使用

if exists (select externaleventid from  event where externaleventid='XYZ') 
select 'True'  
else 
select 'False' 
return

但它给了我一个语法错误"和/或",这是sql开发人员所期望的。

目前尚不清楚您是在请求返回字符串'True''False'的SQL语句,还是在请求返回相同字符串的PL/SQL函数,还是在要求返回实际布尔值的PL/SSQL函数。在12.1之前的SQL中不存在布尔数据类型,所以我猜您不是在要求返回布尔值的SQL语句。

如果你想要一个SQL语句,你可以做一些类似的事情

SELECT (CASE WHEN cnt >= 1
             THEN 'True'
             ELSE 'False'
          END) result_str
  FROM( SELECT COUNT(*) cnt
          FROM event 
         WHERE externaleventid = 'XYZ' )

如果你想要一个PL/SQL函数,你可能会做一些类似的事情

CREATE OR REPLACE FUNCTION does_exist( 
    p_externaleventid IN event.externaleventid%type 
)
  RETURN VARCHAR2
IS
  l_cnt PLS_INTEGER;
BEGIN
  SELECT COUNT(*)
    INTO l_cnt
    FROM event
   WHERE externaleventid = p_externaleventid;
  IF( l_cnt > 0 )
  THEN 
    RETURN 'True';
  ELSE
    RETURN 'False';
  END IF;
END;

相关内容

最新更新