У меня есть набор значений в таблице temp, которую я хочу использовать для заполнения трех новых столбцов (в приведенном ниже примере 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
null никогда не должен превышать значение? – pancho018
Возможно COALESCE? – Max