我的桌子:
| ID | 角色 |
|---|---|
| b | F |
| b | s |
| b | G |
| 一個 | s |
| 一個 | F |
| C | F |
我想要一個獨特id但具有相應role邏輯的:
If g exists select g if not
if s exists select s if not
if f exists select f.
查詢應該產生:
| ID | 角色 |
|---|---|
| b | G |
| 一個 | s |
| C | F |
我試過了group by id,但role無法按有用的順序排序。
uj5u.com熱心網友回復:
select id
,role
from (
select *
,rank() over(partition by id order by case when role = 'g' then 2 when role = 's' then 1 end desc) as rnk
from t
) t
where rnk = 1
| ID | 角色 |
|---|---|
| 一個 | s |
| b | G |
| C | F |
小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/513998.html
標籤:sqlsqlite
