我想获得连续多列的最小值和最大值。我使用 CROSS APPLY、UPIVOT 和 VALUES 找到了各种工作查询,例如:
select column1, column2, code1,
(qty2), (qty3), (qty4), (qty5),
MinVal, MaxVal
from dummydata
cross apply (select MIN(NULLIF (d ,0)) MinVal,
Max(d) MaxVal
FROM (VALUES (qty2),
(qty3),
(qty4),
(qty5)
) AS a(d)
) A
Run Code Online (Sandbox Code Playgroud)
这些都在 SQL Server 2005 或更高版本中工作,但我需要 SQL Server 2000(数据库兼容级别 80)的解决方案。我怎样才能做到这一点?
DDL:
CREATE TABLE [dbo].[dummydata](
[column1] [nvarchar](255) NULL,
[column2] [nvarchar](255) NULL,
[code1] [nvarchar](255) NULL,
[qty2] [float] NULL,
[qty3] [float] NULL,
.......
[qty20] [float] NULL)
Run Code Online (Sandbox Code Playgroud)
查询输出: