SQL In的替换

  • Post author:
  • Post category:其他


前2天在搞SQL的的时候,发现其中有很多in的操作,诸如:id in(1,2,3)或id in(select id from table……),这个对SQL来说并不是最好的选择,执行效率是偏低的[它执行的是全表遍历],同事问那用什么来替代In Or Not In呢?其实方法还是有的,比方用EXISTS替代IN、用NOT EXISTS替代NOT IN。在这里我另外一种方式来实现替代In.下面先来看下测试的数据结构

id	stuid	stuname	birthdat	areaorganid
1	4538	张文	1977-06-30 00:00:00.000	36
2	4538	张文	1977-06-30 00:00:00.000	36
3	5324	王清超	1971-10-13 00:00:00.000	36
4	5324	王清超	1971-10-13 00:00:00.000	36
5	5969	卫石林	1982-03-25 00:00:00.000	36
6	5969	卫石林	1982-03-25 00:00:00.000	36
7	5865	林雪健	1981-06-25 00:00:00.000	36
1	4538	张文	1977-06-30 00:00:00.000	36
2	4538	张文	1977-06-30 00:00:00.000	36
3	5324	王清超	1971-10-13 00:00:00.000	36
4	5324	王清超	1971-10-13 00:00:00.000	36
5	5969	卫石林	1982-03-25 00:00:00.000	36
6	5969	卫石林	1982-03-25 00:00:00.000	36
7	5865	林雪健	1981-06-25 00:00:00.000	36

SELECT * FROM dbo.AAAA WHER