最近在项目中需要用到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 StockPointId!=@StockPointId))
return -11;
注意,更新时要对主键id条件进行判断,必须是Id不同的数据的某个字段存在重复结果才是false,否则同一个id的数据没有进行任何更改也不能保存原数据,所以在这个查询中必须存在一个Id!=@Id 的条件。