在日期时间字段中使用类似于T-SQL中的LEAST

Dev*_*man 2 sql t-sql sql-server datetime

可能重复:
在sql中获取最少两个值

好吧,我有一个有两个日期时间字段的表,我想选择最早的日期等于某个日期变量的行.我在某处看到了LEAST函数,但我不能在T-SQL中使用它

我需要这样的东西

SELECT LEAST(date1, date2) as theDate FROM theTable WHERE theDate = '2012-09-24'
Run Code Online (Sandbox Code Playgroud)

但这将在T-SQL中起作用.date1或date2有时也可以为null,因此可能很重要.

Gil*_*ilM 5

其他人提供的CASE解决方案适用于两个值的情况(没有双关语).为了将来参考,对于三个或更多值,它变得有点不合适,您可能想要做这样的事情:

SELECT (SELECT MIN(mydate) 
        FROM (VALUES(date1),(date2),(date3)) mylist(mydate)
       ) AS theDate
FROM theTable 
WHERE theDate = '2012-09-24' 
Run Code Online (Sandbox Code Playgroud)