簡體   English   中英

在 ORACLE SQL 中查找所有可能的組合列值

[英]Find all possible combinations column value in ORACLE SQL

您能否幫我解決以下查詢:

我有下面的數據表。

雇員編號 姓名 城市
1 約翰 我們
2 米蘭達 我們
3 皮特 我們
4 傑克 我們
5 凱西 英國
6 坦尼 英國
7 莎莉 阿聯酋

我想要 output 如下所示:

城市 名稱1 名稱2
我們 約翰 米蘭達
我們 約翰 皮特
我們 約翰 傑克
我們 米蘭達 皮特
我們 米蘭達 傑克
我們 皮特 傑克
英國 凱西 坦尼

PLSQL 我們可以寫塊來得到這個 output。 但是是否可以單獨使用 SQL 代碼獲得 output ?

看起來像一個自我加入。

SQL> with temp (empno, name, city) as
  2    (select 1, 'John'   , 'US'  from dual union all
  3     select 2, 'Miranda', 'US'  from dual union all
  4     select 3, 'Pete'   , 'US'  from dual union all
  5     select 4, 'Jack'   , 'US'  from dual union all
  6     select 5, 'Kathy'  , 'UK'  from dual union all
  7     select 6, 'Tanni'  , 'UK'  from dual union all
  8     select 7, 'Sally'  , 'UAE' from dual
  9    )
 10  select a.city, a.name, b.name
 11  from temp a join temp b on a.city = b.city and a.name < b.name
 12  order by a.city, a.name;

CIT NAME    NAME
--- ------- -------
UK  Kathy   Tanni
US  Jack    Miranda
US  Jack    John
US  Jack    Pete
US  John    Pete
US  John    Miranda
US  Miranda Pete

7 rows selected.

SQL>
with
  input_table (empno, name, city) as (
    select 1, 'John'   , 'US'  from dual union all
    select 2, 'Miranda', 'US'  from dual union all
    select 3, 'Pete'   , 'US'  from dual union all
    select 4, 'Jack'   , 'US'  from dual union all
    select 5, 'Kathy'  , 'UK'  from dual union all
    select 6, 'Tanni'  , 'UK'  from dual union all
    select 7, 'Sally'  , 'UAE' from dual
  )
-- end of sample data (for testing only, not part of the query)
-- remove WITH clause and use your actual table name below
select t1.city, t1.name as name1, t2.name as name2
from   input_table t1 inner join input_table t2
                      on t1.city = t2.city and t1.empno < t2.empno
order  by t1.empno, t2.empno   -- if needed
;

CITY  NAME1    NAME2  
----- -------- --------
US    John     Miranda
US    John     Pete   
US    John     Jack   
US    Miranda  Pete   
US    Miranda  Jack   
US    Pete     Jack   
UK    Kathy    Tanni 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM