Oracle有一種簡單的方法來查詢n個字段的唯一組合。我有很簡單的兩個領域解決方案:SQL和獨特的n-coulmn組合
CREATE TABLE combinations AS
SELECT 1 AS n
FROM DUAL
UNION ALL
SELECT 2
FROM DUAL;
查詢獨特組合:
SELECT LEAST(x.a, x.b),
GREATEST(x.a,x.b)
FROM (SELECT c1.n a,
c2.n b
FROM combinations c1
CROSS JOIN combinations c2
WHERE c1.n <> c2.n) x
GROUP BY LEAST(x.a, x.b), GREATEST(x.a,x.b);
從這個查詢1,2和2,1被認爲是相同的。不幸的是,它不適用於3場結構(例如,1,2,3必須被認爲與3,1,2相同,因爲值的排序無關緊要)。 Oracle分析函數是否爲這個問題提供了適當的解決方案?你能提出一些特定的Oracle分析功能嗎?
難道你只需要使用'<'而不是'<>'來連接? – 2011-05-07 22:17:00