对exists用法的一点点总结

最近在项目中需要用到exists,所以整理下exists的相关用法,以便日后查阅.

EXISTS 指定一个子查询,用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False,检测行的存在。

语法:EXISTS subquery。参数 subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。结果类型为 Boolean,如果子查询包含行,则返回 TRUE。

在存储过程中查询新增的数据是否已存在某个重复的字段,如果重复则 返回false

代码如下:

if(exists(select StockPointName from IV_StockPoint      
  where StockPointName=@StockPointName 
and Orderowner=@Saloon_id
 ))return -11;

在存储过程中查询更新的数据是否已存在某个重复的字段,如果重复则返回false

代码如下:

 if(exists(select StockPointName from IV_StockPoint where StockPointName=@StockPointName

 and Orderowner=@Saloon_id

 and  StockPointId!=@StockPointId))

return -11;

注意,更新时要对主键id条件进行判断,必须是Id不同的数据的某个字段存在重复结果才是false,否则同一个id的数据没有进行任何更改也不能保存原数据,所以在这个查询中必须存在一个Id!=@Id 的条件。

你可能感兴趣的:(exists)