我試圖為業務邏輯相同的多行獲取單個記錄。
樣本資料:

我試圖獲取這個輸出:

例如,“加爾各答到德里”和“德里到加爾各答”具有相同的業務含義。
我怎樣才能獲取“加爾各答到德里”和“德里到加爾各答”的一條記錄,其余的也一樣?
我為此使用 Oracle 12c。
uj5u.com熱心網友回復:
使用DISTINCTandLEAST和GREATEST功能:
SELECT DISTINCT
LEAST(source, destination) AS source,
GREATEST(source, destination) AS destination
FROM table_name
其中,對于樣本資料:
CREATE TABLE table_name (source, destination, distance) AS
SELECT 'A', 'B', 100 FROM DUAL UNION ALL
SELECT 'A', 'B', 110 FROM DUAL UNION ALL
SELECT 'B', 'A', 120 FROM DUAL UNION ALL
SELECT 'C', 'D', 200 FROM DUAL UNION ALL
SELECT 'D', 'C', 290 FROM DUAL UNION ALL
SELECT 'E', 'F', 310 FROM DUAL UNION ALL
SELECT 'F', 'E', 320 FROM DUAL UNION ALL
SELECT 'F', 'E', 300 FROM DUAL;
輸出:
資源 目的地 一個 乙 C D 乙 F
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/494080.html
