我在臨時表中有一組值,我想用它來填充三個新列(在下面的MAX(CASE ... END)
語句中)。在有序集合中返回NULL值
但是,我發現有時列1(或列1和列2)將包含NULL
值,即使列3有一個值。
我想爲任何NULL
值出現後其它值,例如,Col1中=值,Col2中=值,COL3 = NULL
。
源代碼:
SELECT
mc.ID
,mc.Date
,max(case when sv1.row_num = 1 and mc.Date = sv1.Date then sv1.[Col] end) as Col1
,max(case when sv1.row_num = 2 and mc.Date = sv1.Date then sv1.[Col] end) as Col2
,max(case when sv1.row_num = 3 and mc.Date = sv1.Date then sv1.[Col] end) as Col3
INTO #Total7
FROM
#MyTable3 as mc
join
(
select
#MyTable3.*,
row_number() OVER (PARTITION BY [ID] ORDER BY [Date]) as row_num
from #MyTable3
)as sv1 on
mc.ID = sv1.ID
GROUP BY
mc.ID
,mc.Date
SELECT *
FROM #Total7
ORDER BY ID, Date
你是什麼意思'NULL'應該永遠不會進行值? – Zane 2014-10-08 13:52:11
null應該永遠不會在值之前? – pancho018 2014-10-08 13:55:08
也許COALESCE? – Max 2014-10-08 13:55:46