我无法将 NULL 值显示为第 2 行
我使用以下语法:
ROW_NUMBER() OVER (PARTITION BY [SOP number], [soporderreturnlineid],
CASE
WHEN sopinvoicecreditlineid IS NOT NULL
THEN 1
ELSE 2
END,
sopinvoicecreditlineid
ORDER BY [SOP number], [soporderreturnlineid],
CASE
WHEN sopinvoicecreditlineid IS NOT NULL
THEN 1
ELSE 2
END ASC,
sopinvoicecreditlineid DESC) xx
我需要的是黄线在 xx 列中显示 1,其中
SOPInvoiceCreditLineId
中有一个值,而 xx 显示 2,其中 SOPInvoiceCreditLineId
中的值为空。
希望有人能帮忙吗?
提前致谢。
看起来您需要从
PARTITION BY
中删除这些列。如果您想到按相同列进行分区和排序是没有意义的事实,那么这应该是显而易见的。
ROW_NUMBER() OVER (PARTITION BY [SOP number], [soporderreturnlineid]
ORDER BY IIF(sopinvoicecreditlineid IS NULL, 2, 1), sopinvoicecreditlineid) xx
或者,如果您不介意顺序完全相反,只需使用
DESC
ROW_NUMBER() OVER (PARTITION BY [SOP number], [soporderreturnlineid]
ORDER BY sopinvoicecreditlineid DESC) xx