我使用的是 SQL Server 2008;
假设我有一个表“X”,其中包含“Date1”、“Date2”、“Dateblah”列,所有类型均为 DateTime。
例如,我想选择三列之间的最小值(简化,日期为 mm/dd/yyyy)
ID Date1 Date2 Dateblah
0 09/29/2011 09/20/2011 09/01/2011
1 01/01/2011 01/05/2011 03/03/2010
ID MinDate
0 09/01/2011
1 03/03/2010
有面包和黄油命令可以做到这一点吗?
提前致谢。
编辑:我见过这个问题What's the best way to select the minimum value from several columns?但不幸的是,它不适合我,因为我有义务这样做,因为我正在制作 tfs 工作项报告,并且如果我有 6 ou 7 的话,“暴力”案例最终会很痛苦列。
最佳答案
基于标量函数(来自 Tom Hunter ):
SELECT ID, (SELECT MIN([date]) FROM (VALUES(Date1),(Date2),(Dateblah)) x([date])) MinDate
FROM TableName
关于sql-server - 获取几列之间的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7598150/