日期:2014-05-16  浏览次数:20832 次

关于表中相同内容的sql语句
有一数据库表,大概有100个字段左右,现在要解决的问题是,表中任意一条记录与表中其他记录比较;
1.要求返回与这条记录完全相同的所有数据;
2.要求返回与这条记录有一个字段不同的所有数据(任意一个字段不同都是满足条件的);
3.要求返回与这条记录有二个字段不同的所有数据(任意二个字段不同都是满足条件的);
4.要求返回与这条记录有三个字段不同的所有数据(任意三个字段不同都是满足条件的).
可以用多条sql语句实现。

------解决方案--------------------
1.要求返回与这条记录完全相同的所有数据;
SQL code
select * 
from 有一数据库表 a
where 2<=(select count(*) from 有一数据库表 where col1=a.col1 and col2=a.col2 and .... and col100=a.col100)

------解决方案--------------------
2.要求返回与这条记录有一个字段不同的所有数据(任意一个字段不同都是满足条件的);
SQL code
select * 
from 有一数据库表 a
where 2<=(select count(*) from 有一数据库表 where  (col1=a.col1)+(col2=a.col2)+ ... + (col100=a.col100)>=99)

------解决方案--------------------
没有,不然 ACMAIN_CHM 肯定知道