Qu'est-ce que votre requête existante n'aime pas? Si vous êtes concerné que DISTINCT
à travers deux colonnes ne retourne pas seulement les permutations uniques pourquoi ne pas l'essayer?
Cela fonctionne certainement comme vous pouvez vous y attendre dans Oracle.
SQL> select distinct deptno, job from emp
2 order by deptno, job
3/
DEPTNO JOB
---------- ---------
10 CLERK
10 MANAGER
10 PRESIDENT
20 ANALYST
20 CLERK
20 MANAGER
30 CLERK
30 MANAGER
30 SALESMAN
9 rows selected.
SQL> select count(*) from (
2 select distinct deptno, job from emp
3 )
4/
COUNT(*)
----------
9
SQL>
modifier
Je suis allé dans une impasse avec l'analyse, mais la réponse était évidente déprimante ...
SQL> select count(distinct concat(deptno,job)) from emp
2/
COUNT(DISTINCTCONCAT(DEPTNO,JOB))
---------------------------------
9
SQL>
modifier 2
Compte tenu des données suivantes la solution de concaténation fournie ci-dessus sera erronée:
col1 col2
---- ----
A AA
AA A
Nous pour inclure un séparateur ...
select col1 + '*' + col2 from t23
/
Il est évident que le séparateur choisi doit être un caractère ou un ensemble de caractères, qui ne peut jamais apparaître dans les deux colonnes.
IordanTanev, Mark Brackett, RC - merci pour les réponses, c'était un bon essai, mais vous devez vérifier ce que vous faites avant de poster sur SO. Les requêtes que vous avez fournies ne sont pas équivalentes à ma requête. Vous pouvez facilement voir que j'ai toujours un résultat scalaire, mais votre requête renvoie plusieurs lignes. – Novitzky
Juste mis à jour la question pour inclure votre commentaire de clarification d'une des réponses – Jeff