select * from a t1,a t2 
where abs(t1.parameter-t2.parameter)<0.5

解决方案 »

  1.   

    这样子确实可以做到!但又出现另一个问题:
    我希望每个产品和另一个产品的parameter只差0.5的结果出来后,将不出现在后面的查询过程中!
    也就是希望每个编号的产品只出现一次!如上面的参数中:
    12.7685    12.3520之间的差值符合查询结果!
    那么12.7685或者12.3520这两个满足过要求的产品就不能出现在后面的查询结果中select * from a t1,a t2 
    where abs(t1.parameter-t2.parameter)<0.5 and t1.parameter<>t2.parameter
    这样子还是达不到要求!
      

  2.   

    嵌套查询阿
    SELECT *
    FROM a, (
    select * from a t1,a t2 
    where abs(t1.parameter-t2.parameter)<0.5 and t1.parameter<>t2.parameter
    ) as temp
    WHERE a.parameter <>temp.parameter
      

  3.   

    可是这样执行有错误
    “多次为 'temp' 指定了列 'ID'。”
    刚接触SQL,不好意思,请指教!
    全部字段为:
    ID  parameter Other
      

  4.   

    哦,这样啊,那你就不要select *
    内层嵌套的语句写成这样
    (select temp.parameter from a t1,a t2 
    where abs(t1.parameter-t2.parameter)<0.5 and t1.parameter<>t2.parameter
    )as temp
      

  5.   

    对了,外层同样也不要select *
    因为这样还是会出错,写成select a.id
    这样就把你需要的纪录的id都找出来了
      

  6.   

    完整的应该是这样
    SELECT A.ID
    FROM A, (
    select TEMP.ID from a t1,a t2 
    where abs(t1.parameter-t2.parameter)<0.5 and t1.parameter<>t2.parameter
    ) as temp
    WHERE a.ID <>temp.ID