已搜索hi and low,似乎無法找到如何做到這一點。我有一個兩列的表。只選一條記錄
Order route
===== =====
Order_1 100
Order_1 101
Order_2 102
Order_3 103
Order_4 104
我想要的結果是,提前
Order_2 102
Order_3 103
Order_4 104
感謝。
已搜索hi and low,似乎無法找到如何做到這一點。我有一個兩列的表。只選一條記錄
Order route
===== =====
Order_1 100
Order_1 101
Order_2 102
Order_3 103
Order_4 104
我想要的結果是,提前
Order_2 102
Order_3 103
Order_4 104
感謝。
Order
是保留關鍵字,所以我用order_column
代替。
首先,測試數據:
create table order_route_table(order_column varchar2(20)
, route number);
insert into order_route_table
select 'Order_1', 100 from dual
union all select 'Order_1', 101 from dual
union all select 'Order_2', 102 from dual
union all select 'Order_3', 103 from dual
union all select 'Order_4', 104 from dual;
然後傳統上:
select order_column, min(route)
from order_route_table
group by order_column
having count(*) = 1;
與分析:
select order_column, route
from (select order_column
, route
, count(*) over (partition by order_column) as order_count
from order_route_table)
where order_count = 1;
結果在任一種情況下:
ORDER_COLUMN ROUTE
-------------------- ----------
Order_2 102
Order_3 103
Order_4 104
請告訴我們你已經嘗試過了。 – NickLH
SQL? C#?有點難以告訴你在這裏之後... – kaveman
對不起,我很匆忙地在平板電腦上輸入它。感謝您的修復。這是一個使用ODP.NET的C#sql字符串。香農的答案效果很好。太感謝了。真棒網站。 – ValiRossi