Re: [SQL ] MSSQL欄位自動取得上一筆的欄位
假設你 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
推
02/16 03:09,
6年前
, 1F
02/16 03:09, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章