您可以使用分析功能;這種使用CTE提供基礎數據與剛剛在帳戶:
with all_queues (account) as (
select '12345D' from dual
union all select '12345D' from dual
union all select '12345D' from dual
union all select '12345M' from dual
union all select '22222D' from dual
union all select '22222D' from dual
union all select '22222D' from dual
union all select '22222D' from dual
)
select account,
case max(substr(account, -1))
over (partition by substr(account, 1, length(account) - 1))
when 'M' then 'N' else 'Y' end as posting_flag
from all_queues;
ACCOUNT POSTING_FLAG
------- ------------
12345D N
12345D N
12345D N
12345M N
22222D Y
22222D Y
22222D Y
22222D Y
8 rows selected.
如果帳戶確實總是七個字符,那麼你可以簡化分區子。
謝謝亞歷克斯!這工作完美。 – maggsforever