看板 Database 關於我們 聯絡資訊
假設你 join 數張 table 得到的結果叫: result ;with tb1 as ( select t1.*, case when t1.COLA = 'GOOD' then t1.ID else t2.ID end as COLB, row_number() over (partition by t1.ID order by t2.ID desc) as num from result t1 left join result t2 on t1.COLA != 'GOOD' and t2.COLA = 'GOOD' and t1.ID > t2.ID ) select * from tb1 where num = 1 ※ 引述《Nowtreel (盜版陳金城)》之銘言: : 資料庫-MSSQL-2012 : 各位好 : 資料庫新手想請教 : 目前組出一張表,有欄位ID ... COLA : 是JOIN數張TABLE得到的結果 : 如下: : ID ... COLA COLB : --------------------- : AA ... GOOD AA : BB ... SOSO AA : CC ... BAD AA : DD ... TOOBAD AA : EE ... GOOD EE : FF ... GOOD FF : GG ... NULL NULL : HH ... GOOD HH : II ... BAD HH : JJ ... SOSO HH : 現今希望能繼續加入一欄COLB : 邏輯是判斷為 : 只要COLA是'GOOD',COLB就取ID值 : 只要COLA非'GOOD',COLB就取上一個COLA為GOOD的ID值 : 只要COLA為NULL,COLB就是NULL : 請問有什麼方式可以做到嗎? : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.221.80.36 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1518511673.A.C34.html
Nowtreel: 看來能達到我想要的效果,感謝您 02/16 03:09