求三个日期的最小值

qiuqingpo 2017-09-14 03:15:34
一张表有三个字段,都是日期格式

date1,date2,date3

我想得到所有的数据,并且每一行显示date1,date2,date3的最小值

如:date1,date2,date3,datemin

不知道怎么写,求各位大大支招。谢谢
...全文
467 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
碧水幽幽泉 2017-09-14
  • 打赏
  • 举报
回复
引用 5 楼 sinat_28984567 的回复:
http://www.cnblogs.com/lkvm114/archive/2011/03/29/1999086.html

https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/2.gif
听雨停了 2017-09-14
  • 打赏
  • 举报
回复

WITH cte AS (
SELECT '2017-02-02' AS date1,'2017-08-05' AS date2,'2017-06-08' AS date3
UNION ALL
SELECT '2017-09-02','2017-11-05','2016-12-08'
)
SELECT date1,
       date2,
       date3,
       mindate = (
           SELECT min(date1)
           FROM   (
                      SELECT date1 
                      UNION ALL 
                      SELECT date2 
                      UNION ALL 
                      SELECT date3
                  )T
       )
FROM   cte

date1      date2      date3      mindate
---------- ---------- ---------- ----------
2017-02-02 2017-08-05 2017-06-08 2017-02-02
2017-09-02 2017-11-05 2016-12-08 2016-12-08

(2 行受影响)
上面取到最大值去了,不好意思
听雨停了 2017-09-14
  • 打赏
  • 举报
回复

WITH cte AS (
SELECT '2017-02-02' AS date1,'2017-08-05' AS date2,'2017-06-08' AS date3
UNION ALL
SELECT '2017-09-02','2017-11-05','2016-12-08'
)
SELECT date1,
       date2,
       date3,
       mindate = (
           SELECT MAX(date1)
           FROM   (
                      SELECT date1 
                      UNION ALL 
                      SELECT date2 
                      UNION ALL 
                      SELECT date3
                  )T
       )
FROM   cte

date1      date2      date3      maxdate
---------- ---------- ---------- ----------
2017-02-02 2017-08-05 2017-06-08 2017-08-05
2017-09-02 2017-11-05 2016-12-08 2017-11-05

(2 行受影响)
顺势而为1 2017-09-14
  • 打赏
  • 举报
回复
Select min(Date1),min(Date2),min(Date3) From 表
繁花尽流年 2017-09-14
  • 打赏
  • 举报
回复
case when date1<=date2 and date1<=date3 then date1 when date2<=date1 and date2<=date3 then date2 when date3<=date1 and date3<=date2 then date3 end datemin 把这段拼到select里去

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧