Co takiego jest w twoim istniejącym zapytaniu, czego nie lubisz? Jeśli się tym martwiszDISTINCT
dwie kolumny nie zwracają tylko unikatowych permutacji, spróbuj tego?
Z pewnością działa tak, jak można oczekiwać w 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>
edytować
Poszedłem ślepą uliczką z analizami, ale odpowiedź była przygnębiająco oczywista ...
SQL> select count(distinct concat(deptno,job)) from emp
2 /
COUNT(DISTINCTCONCAT(DEPTNO,JOB))
---------------------------------
9
SQL>
edycja 2
Biorąc pod uwagę następujące dane, powyższe rozwiązanie konkatenacyjne zostanie przelane:
col1 col2
---- ----
A AA
AA A
Więc dołączymy separator ...
select col1 + '*' + col2 from t23
/
Oczywiście wybrany separator musi być znakiem lub zestawem znaków, które nigdy nie mogą pojawić się w żadnej kolumnie.