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

解决方案 »

  1.   

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

  2.   

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

  3.   

    3.要求返回与这条记录有二个字段不同的所有数据(任意二个字段不同都是满足条件的);
    select * 
    from 有一数据库表 a
    where 2<=(select count(*) from 有一数据库表 where  (col1=a.col1)+(col2=a.col2)+ ... + (col100=a.col100)>=98)4.要求返回与这条记录有三个字段不同的所有数据(任意三个字段不同都是满足条件的).
    select * 
    from 有一数据库表 a
    where 2<=(select count(*) from 有一数据库表 where  (col1=a.col1)+(col2=a.col2)+ ... + (col100=a.col100)>=97)
      

  4.   

    没有,不然 ACMAIN_CHM 肯定知道