表1:sheet 表2:sheet1
都是10个字段
求SQL查询语句
11 个解决方案
#1
sf..
只查询重复对么,,而且要完全相同?
只查询重复对么,,而且要完全相同?
#2
沒有主鍵什麽的嗎?
#3
select sheet1.*
from sheet inner join sheet1 on sheet.主键=sheet1.主键 and sheet.field1=sheet.field1 and sheet.field2=sheet.field2 ...
如果有主键的话 用主键就可以了,或者吧10个字段全部加上
from sheet inner join sheet1 on sheet.主键=sheet1.主键 and sheet.field1=sheet.field1 and sheet.field2=sheet.field2 ...
如果有主键的话 用主键就可以了,或者吧10个字段全部加上
#4
只查ID(主键)相同的.
select a.* from a where id in (select id from b)
select a.* from a where id in (select id from b)
#5
所有字段.
--前提:表中不能有text、ntext、image、cursor 数据类型的字段。
用CheckSum()最简单:
select * from A where checksum(*) not in (select checksum(*) from B)
--前提:表中不能有text、ntext、image、cursor 数据类型的字段。
用CheckSum()最简单:
select * from A where checksum(*) not in (select checksum(*) from B)
#6
inner join 就ok
#7
use tempdb
go
if exists (select * from sysobjects where name = 'Sheet')
drop table Sheet
go
create table Sheet(id int identity(1,1)
,name0 varchar(1)
,name1 varchar(1)
,name2 varchar(1)
,name3 varchar(1)
,name4 varchar(1)
,name5 varchar(1)
,name6 varchar(1)
,name7 varchar(1)
,name8 varchar(1)
,name9 varchar(1)
)
go
if exists (select * from sysobjects where name = 'Sheet1')
drop table Sheet1
go
create table Sheet1(id int identity(1,1)
,name0 varchar(1)
,name1 varchar(1)
,name2 varchar(1)
,name3 varchar(1)
,name4 varchar(1)
,name5 varchar(1)
,name6 varchar(1)
,name7 varchar(1)
,name8 varchar(1)
,name9 varchar(1)
)
go
insert sheet(
name0
,name1
,name2
,name3
,name4
,name5
,name6
,name7
,name8
,name9
)
values
(
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a'
)
insert sheet(
name0
,name1
,name2
,name3
,name4
,name5
,name6
,name7
,name8
,name9
)
values
(
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b'
)
insert sheet1(
name0
,name1
,name2
,name3
,name4
,name5
,name6
,name7
,name8
,name9
)
values
(
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b'
)
select * from sheet
select * from sheet1
select * from Sheet a inner join Sheet1 b
on
a.name0 = b.name0 and
a.name1 = b.name1 and
a.name2 = b.name2 and
a.name3 = b.name3 and
a.name4 = b.name4 and
a.name5 = b.name5 and
a.name6 = b.name6 and
a.name7 = b.name7 and
a.name8 = b.name8 and
a.name9 = b.name9
go
if exists (select * from sysobjects where name = 'Sheet')
drop table Sheet
go
create table Sheet(id int identity(1,1)
,name0 varchar(1)
,name1 varchar(1)
,name2 varchar(1)
,name3 varchar(1)
,name4 varchar(1)
,name5 varchar(1)
,name6 varchar(1)
,name7 varchar(1)
,name8 varchar(1)
,name9 varchar(1)
)
go
if exists (select * from sysobjects where name = 'Sheet1')
drop table Sheet1
go
create table Sheet1(id int identity(1,1)
,name0 varchar(1)
,name1 varchar(1)
,name2 varchar(1)
,name3 varchar(1)
,name4 varchar(1)
,name5 varchar(1)
,name6 varchar(1)
,name7 varchar(1)
,name8 varchar(1)
,name9 varchar(1)
)
go
insert sheet(
name0
,name1
,name2
,name3
,name4
,name5
,name6
,name7
,name8
,name9
)
values
(
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a'
)
insert sheet(
name0
,name1
,name2
,name3
,name4
,name5
,name6
,name7
,name8
,name9
)
values
(
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b'
)
insert sheet1(
name0
,name1
,name2
,name3
,name4
,name5
,name6
,name7
,name8
,name9
)
values
(
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b'
)
select * from sheet
select * from sheet1
select * from Sheet a inner join Sheet1 b
on
a.name0 = b.name0 and
a.name1 = b.name1 and
a.name2 = b.name2 and
a.name3 = b.name3 and
a.name4 = b.name4 and
a.name5 = b.name5 and
a.name6 = b.name6 and
a.name7 = b.name7 and
a.name8 = b.name8 and
a.name9 = b.name9
#8
checksum
這個好用
這個好用
#9
龟的办法不错,,以前也那么用过,,
不过好象校验值的限制也很多....
不过好象校验值的限制也很多....
#10
是这样
不是把重复的筛选掉 查询其他不重复的数据
而是要把那些重复的数据查询出来
不是把重复的筛选掉 查询其他不重复的数据
而是要把那些重复的数据查询出来
#11
checksum Mark
#1
sf..
只查询重复对么,,而且要完全相同?
只查询重复对么,,而且要完全相同?
#2
沒有主鍵什麽的嗎?
#3
select sheet1.*
from sheet inner join sheet1 on sheet.主键=sheet1.主键 and sheet.field1=sheet.field1 and sheet.field2=sheet.field2 ...
如果有主键的话 用主键就可以了,或者吧10个字段全部加上
from sheet inner join sheet1 on sheet.主键=sheet1.主键 and sheet.field1=sheet.field1 and sheet.field2=sheet.field2 ...
如果有主键的话 用主键就可以了,或者吧10个字段全部加上
#4
只查ID(主键)相同的.
select a.* from a where id in (select id from b)
select a.* from a where id in (select id from b)
#5
所有字段.
--前提:表中不能有text、ntext、image、cursor 数据类型的字段。
用CheckSum()最简单:
select * from A where checksum(*) not in (select checksum(*) from B)
--前提:表中不能有text、ntext、image、cursor 数据类型的字段。
用CheckSum()最简单:
select * from A where checksum(*) not in (select checksum(*) from B)
#6
inner join 就ok
#7
use tempdb
go
if exists (select * from sysobjects where name = 'Sheet')
drop table Sheet
go
create table Sheet(id int identity(1,1)
,name0 varchar(1)
,name1 varchar(1)
,name2 varchar(1)
,name3 varchar(1)
,name4 varchar(1)
,name5 varchar(1)
,name6 varchar(1)
,name7 varchar(1)
,name8 varchar(1)
,name9 varchar(1)
)
go
if exists (select * from sysobjects where name = 'Sheet1')
drop table Sheet1
go
create table Sheet1(id int identity(1,1)
,name0 varchar(1)
,name1 varchar(1)
,name2 varchar(1)
,name3 varchar(1)
,name4 varchar(1)
,name5 varchar(1)
,name6 varchar(1)
,name7 varchar(1)
,name8 varchar(1)
,name9 varchar(1)
)
go
insert sheet(
name0
,name1
,name2
,name3
,name4
,name5
,name6
,name7
,name8
,name9
)
values
(
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a'
)
insert sheet(
name0
,name1
,name2
,name3
,name4
,name5
,name6
,name7
,name8
,name9
)
values
(
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b'
)
insert sheet1(
name0
,name1
,name2
,name3
,name4
,name5
,name6
,name7
,name8
,name9
)
values
(
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b'
)
select * from sheet
select * from sheet1
select * from Sheet a inner join Sheet1 b
on
a.name0 = b.name0 and
a.name1 = b.name1 and
a.name2 = b.name2 and
a.name3 = b.name3 and
a.name4 = b.name4 and
a.name5 = b.name5 and
a.name6 = b.name6 and
a.name7 = b.name7 and
a.name8 = b.name8 and
a.name9 = b.name9
go
if exists (select * from sysobjects where name = 'Sheet')
drop table Sheet
go
create table Sheet(id int identity(1,1)
,name0 varchar(1)
,name1 varchar(1)
,name2 varchar(1)
,name3 varchar(1)
,name4 varchar(1)
,name5 varchar(1)
,name6 varchar(1)
,name7 varchar(1)
,name8 varchar(1)
,name9 varchar(1)
)
go
if exists (select * from sysobjects where name = 'Sheet1')
drop table Sheet1
go
create table Sheet1(id int identity(1,1)
,name0 varchar(1)
,name1 varchar(1)
,name2 varchar(1)
,name3 varchar(1)
,name4 varchar(1)
,name5 varchar(1)
,name6 varchar(1)
,name7 varchar(1)
,name8 varchar(1)
,name9 varchar(1)
)
go
insert sheet(
name0
,name1
,name2
,name3
,name4
,name5
,name6
,name7
,name8
,name9
)
values
(
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a'
)
insert sheet(
name0
,name1
,name2
,name3
,name4
,name5
,name6
,name7
,name8
,name9
)
values
(
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b'
)
insert sheet1(
name0
,name1
,name2
,name3
,name4
,name5
,name6
,name7
,name8
,name9
)
values
(
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b',
'b'
)
select * from sheet
select * from sheet1
select * from Sheet a inner join Sheet1 b
on
a.name0 = b.name0 and
a.name1 = b.name1 and
a.name2 = b.name2 and
a.name3 = b.name3 and
a.name4 = b.name4 and
a.name5 = b.name5 and
a.name6 = b.name6 and
a.name7 = b.name7 and
a.name8 = b.name8 and
a.name9 = b.name9
#8
checksum
這個好用
這個好用
#9
龟的办法不错,,以前也那么用过,,
不过好象校验值的限制也很多....
不过好象校验值的限制也很多....
#10
是这样
不是把重复的筛选掉 查询其他不重复的数据
而是要把那些重复的数据查询出来
不是把重复的筛选掉 查询其他不重复的数据
而是要把那些重复的数据查询出来
#11
checksum Mark