比较单个列中的两个值,具体取决于不同的列

时间:2015-12-12 02:59:57

标签: sql oracle

数据

Table Data

条件

当param_type为' hand'时,找到cust_name和cust_id。和param_name左边的param_value小于prama_name'右边的param_value

查询已尝试

select distinct    
    X.CUST_ID,X.CUST_NAME,X.PARAM_TYPE,X.PARAM_NAME,X.PARAM_VALUE,
    Y.PARAM_NAME,Y.PARAM_VALUE
from test01 x , test01 y, test01 z
where Z.PARAM_TYPE = 'hand'
and X.PARAM_NAME = 'left'
and Y.PARAM_NAME = 'right'
and X.CUST_ID = Y.CUST_ID
and X.CUST_NAME = Y.CUST_NAME
and Z.PARAM_TYPE = X.PARAM_TYPE
and Z.PARAM_TYPE = Y.PARAM_TYPE
and Y.PARAM_VALUE>X.PARAM_VALUE

结果 Query Result/Final Result

问题 查询给出了正确的值,有没有其他方法,因为查询需要很多时间。

1 个答案:

答案 0 :(得分:1)

在您的情况下,只有一个自我加入就足够了 你不需要加入桌子两次:<​​/ p>

" Baker, D. N."