本文转载自微信公众号《SQL数据库开发》,作者,平凡的世界。转载本文请联系SQL数据库开发公众号。SQLServer中有3个关键字可以修饰比较运算符:ALL、ANY和SOME,其中ANY和SOME是等价的。它们作用于比较运算符和子查询之间,类似于EXISTS、NOTEXISTS、IN、NOTIN等逻辑意义。SQLServer2000也支持这些语法,但很少有人使用。今天我们就来介绍一下它们的用法。DefinitionALL:All,表示全部满足才返回trueANY/SOME:Anyone,表示任意一个满足,则返回true例子我们新建两张表Test1和Test2,Test1表的结构如下:Test2表的结构如下:ALLExampleexample1SELECTNumFROMTest2WHERENum>ALL(SELECTNumFROMTest1)结果为:从上面的结果可以看出,只有Test2中的5大于Test1中的所有数字。例2SELECTNumFROMTest2WHERENumANY(SELECTNumFROMTest1)SELECTNumFROMTest2WHERENum>SOME(SELECTNumFROMTest1)他们的结果是:从上面的结果我们可以看出ANY和SOME是等价的,Test2中的任意一个数都满足大于Test1中的数。例如,Test2中的3大于2。“=ANY”与“IN”相同。比如SELECTNumFROMTest2WHERENum=ANY(SELECTNumFROMTest1)SELECTNumFROMTest2WHERENumIN(SELECTNumFROMTest1)他们的结果是:表示Test1中的任意数字都存在于Test2中"<>ALL"同例"NOTIN"SELECTNumFROMTest2WHERENum<>ALL(SELECTNumFROMTest2WHERENumNOTIN(SELECTNumFROMTest2WHERENumNOTIN)他们的结果是:表示Test2中的结果不存在,Test1中的这三个关键字不常用,但是遇到了就知道是什么意思,只是怎么用。