oracle判断同表同条件查出两条数据,根据长短判断差异
目标:同一个物料,账套不同,排查同料号有差异的规格名称
在Oracle数据库中,如果你想查询同一张表中两条数据某个字段的长度不同的情况,你可以使用JOIN
语句或者窗口函数(如ROW_NUMBER()
、RANK()
、DENSE_RANK()
等)结合GROUP BY
和HAVING
子句来实现。
使用JOIN
和聚合函数
这种方法通过自连接表来比较同一字段在不同记录中的长度。
SELECT a.ima01, a.ima021 AS ima021_a, b.ima021 AS ima021_b,LENGTH(a.ima021) AS length_a, LENGTH(b.ima021) AS length_b
FROM v_ima_oa a
JOIN v_ima_oa b ON a.ima01 = b.ima01
WHERE LENGTH(a.ima021) <> LENGTH(b.ima021);
表名v_ima_oa,ima021规格,ima01料号