您的位置:首页 > 数据库

EXISTS 在SQL 中的用法

2012-02-27 23:07 267 查看
Exists在sql server 中是重要的关键字,可以使得一些查询的效率更高。

在项目中遇见到查询有报价的地区信息和查询没有报价的地区信息,当时我用了INNER JOIN来实现,发现当数据量达到千万级后效率很差,后改为Exists关键字实现,效率提高不少。

查询有报价的地区信息:

Update INSERT

CREATE TYPE Ty_PriceSubMitList AS TABLE(
AreaID    INT,
TypeID    INT,
UNID    INT
)
declare @dt Ty_PriceSubMitList;
INSERT INTO @dt VALUES(1,1,148);
INSERT INTO @dt VALUES(1,2,148);
INSERT INTO @dt VALUES(1,3,148);
INSERT INTO @dt VALUES(1,5,148);
INSERT INTO @dt VALUES(1,6,1706);
INSERT INTO @dt VALUES(2,1,148);
INSERT INTO @dt VALUES(2,6,148);
UPDATE pp SET  pp.UpdateTime= GETDATE() FROM PriceSubmitList pp,@dt tt WHERE pp.AreaId = tt.AreaID AND pp.TypeId = tt.TypeID AND pp.UNID = tt.UNID;
INSERT INTO PriceSubmitList(AreaId,TypeId,UNID,UpdateTime) SELECT AreaId,TypeId,UNID,GETDATE() FROM @dt tt WHERE NOT EXISTS(SELECT 0 FROM PriceSubmitList pp WHERE pp.AreaId = tt.AreaId AND pp.TypeId=tt.TypeID AND pp.UNID=tt.UNID)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: