sql-server - 获取几列之间的最小值

标签 sql-server datetime min

我使用的是 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/

相关文章:

python - 删除日期时间函数中的时间?

C:如何向用户询问变量的范围(即最小值和最大值)以及该变量的增量值

java - MySQL 获取数据的问题

sql-server - 无法找到哪一行导致转换错误

sql - 插入到多个选择中

java - 如何将我的时间增加一个小时

sql-server - 读取 excel 源代码并根据 ssis 中的标题运行 sp

ios - 如何在swift中将sql时间戳转换为日期?

java - 如何从输入的一组数字中获取最大值和最小值?

math - 最小骑士移动从一个方格到另一个方格