读书人

求不存在记录,该怎么处理

发布时间: 2013-01-26 13:47:04 作者: rapoo

求不存在记录
A表
E_Wordnvarchar(400)
E_HYnvarchar(20)
E_LANnvarchar(8)
三个字段

B表也是这个三个字段
E_Wordnvarchar(400)
E_HYnvarchar(20)
E_LANnvarchar(8)

我用
select top 20 * from A表 order by newid();
//从A表随即取出20条 放到B表里去
//下次再取的时候 如果B表里存在 就不取了
//这个SQL语句怎么写?
//因为这是随即取的 我不知道怎么写才效率高
求不存在记录,该怎么处理
[解决办法]
select top 20 * from A表
except
select * from B表
order by newid();
[解决办法]

  select top 20 * from 
(
select E_Word,E_HY,E_LAN from A
except
select E_Word,E_HY,E_LAN from B) as TB
order by NEWID()

[解决办法]
  select top 20 * from 
(
select E_Word,E_HY,E_LAN from A
except
select E_Word,E_HY,E_LAN from B) as TB
where xxx='xxx'
order by NEWID()

[解决办法]
给抢了...
select top 20 * from a
where not exists (select 1 from b where a.E_Word=b.E_Word and a.E_HY =b.E_HY and a.E_LAN=b.E_LAN)
order by newid()
1楼的要2005以后才能用

读书人网 >SQL Server

热点推荐