Possible Duplicate:
Getting the minimum of two values in sql
好的,我有一个带有两个datetime字段的表,我想选择最旧的日期等于某个日期变量的行。我看到在某处使用了LEAST函数,但是我不能在T-SQL中使用它
我需要这样的东西
SELECT LEAST(date1, date2) as theDate FROM theTable WHERE theDate = '2012-09-24'
但这将在T-SQL中起作用。而且date1或date2有时可以为null,因此可能很重要。
在T-SQL中没有这样的功能。尝试:
SELECT theDate = CASE WHEN date1 < date2 THEN date1 ELSE date2 END FROM ... ;
要处理NULL,您可能需要:
SELECT theDate = NULLIF(CASE WHEN date1 < date2 THEN date1 ELSE date2 END, '20301231')
FROM
(
SELECT
date1 = COALESCE(date1, '20301231'),
date2 = COALESCE(date2, '20301231')
FROM ...
) AS x;
另外,您不能在
theDate
子句中引用别名
WHERE
,该别名尚不存在。您可能要说:
WHERE '20120924' IN (date1, date2);