Sql server sql server中的按日期排序
我想根据LastModifiedDate或CreatedDate对记录进行排序,我希望两个中最新的一个应该出现在顶部。我尝试了CreatedDate DESC、LastModifiedDate DESC的排序,但这并没有在顶部显示最新的排序,它首先优先考虑LastModifiedDate,然后是CreatedDate您可以比较两列中的两个日期,然后选择最新的日期Sql server sql server中的按日期排序,sql-server,sorting,last-modified,datecreated,Sql Server,Sorting,Last Modified,Datecreated,我想根据LastModifiedDate或CreatedDate对记录进行排序,我希望两个中最新的一个应该出现在顶部。我尝试了CreatedDate DESC、LastModifiedDate DESC的排序,但这并没有在顶部显示最新的排序,它首先优先考虑LastModifiedDate,然后是CreatedDate您可以比较两列中的两个日期,然后选择最新的日期 SELECT CASE WHEN lastmodifiedDate > createdDate THEN lastmod
SELECT
CASE WHEN lastmodifiedDate > createdDate THEN lastmodifiedDate
ELSE createdDate
END AS LatestDate
FROM yourtable
对不起,我忘了您需要提前订购。然后你可以在下面试试
select columns from yourtable order by CASE WHEN lastmodifiedDate > createdDate THEN lastmodifiedDate
ELSE createdDate
END AS LatestDate desc
您可以在ORDERBY子句中使用Case语句,例如:
order by
case when CreatedDate > LastModifiedDate then CreatedDate else LastModifiedDate end DESC
请向我们展示您的查询工具,从逻辑上讲,lastmodified始终是最新的。如果添加了任何新记录,那么lastmodified将为null,createddate将具有最新的日期(今天的日期)
DECLARE @A TABLE (ID INT,CREATION_DATE DATE,LAST_MODIFIED_DATE DATE)
INSERT INTO @A
VALUES
(1,'2016/06/06','2016/06/06'),
(2,'2016/06/06','2016/06/07'),
(3,'2016/06/06','2016/06/05')
SELECT S.* FROM
(
SELECT A.ID,A.CREATION_DATE,A.LAST_MODIFIED_DATE,
CASE
WHEN A.LAST_MODIFIED_DATE > A.CREATION_DATE THEN A.LAST_MODIFIED_DATE
ELSE A.CREATION_DATE
END AS ORDER_DATE
FROM @A A
) S
ORDER BY S.ORDER_DATE DESC