虽然我试图在我的问题上找到很好的答案Analog of OUTER APPLY in other RDBMS (not SQL Server)我发现了相当不错的 PostgreSQL 解决方案:
create table Transactions
(
ID int, Date timestamp, Amount decimal(29, 2), Amount2 decimal(29, 2)
);
insert into Transactions (ID, Date, Amount, Amount2)
select 1, current_timestamp, 100.00, null union all
select 2, current_timestamp, 25.00, 75.00;
select
T.ID,
T.Date,
unnest(array[T.Amount, T.Amount2]) as Amount
from Transactions as T
关键是用我能得到的最易读和最优雅的代码将一些列变成行。但我不想将空列视为行。有什么方法可以在查询的 WHERE 子句中使用 unnest 的值?