날짜별 주문 처음부터 마지막 날짜까지 NULL 표시
선택 문을 실행하는 저장 프로시저가 있습니다.결과를 날짜 필드별로 정렬하고 모든 레코드를 NULL 날짜로 먼저 표시한 다음 가장 최근 날짜로 표시합니다.
문은 다음과 같습니다.
SELECT a,b,c,[Submission Date]
FROM someView
ORDER BY [Submission Date] ASC
이렇게 하면 NULL 제출 날짜가 포함된 모든 레코드가 먼저 표시되지만 날짜 값이 포함된 행에 도달하면 보기에서 가장 최근의 날짜가 아닙니다.
ASC를 DESC로 바꾸면 원하는 순서대로 날짜가 나오지만 NULL 값은 결과 집합의 맨 아래에 있습니다.
맨 위에 null 값을 표시한 다음 날짜 값이 있을 때 가장 최근 값에서 가장 오래된 값으로 내림차순으로 정렬할 수 있도록 쿼리를 구성할 수 있는 방법이 있습니까?
@크리스, 거의 다 됐어요.
ORDER BY (CASE WHEN [Submission Date] IS NULL THEN 1 ELSE 0 END) DESC,
[Submission Date] DESC
[편집 : #Eppz가 위의 코드를 현재와 같이 수정해달라고 요청하였습니다]
저는 개인적으로 "마법의 숫자"를 만드는 것보다 이것이 훨씬 더 좋습니다.마법의 숫자는 거의 항상 발생하기를 기다리는 문제입니다.
NULL을 맨 아래에 배치하면 다음과 같은 작업을 수행할 수 있습니다.
ORDER BY [Submission Date] IS NULL DESC, [Submission Date] ASC
표준 SQL(ISO/IEC 9075-2:2003 이상 - 2008)은 다음을 제공합니다.
ORDER BY SomeColumn NULLS FIRST
대부분의 DBMS는 아직 이를 실제로 지원하지 않습니다, AFAIK.
해라
SELECT a,b,c,[Submission Date]
FROM someView
ORDER BY isnull([Submission Date],cast('2079/01/01' as datetime)) ASC
OrderBy="ColumnName = NULL desc, ColumnName desc"
오래된 솔루션인 것은 알지만, 제가 그것을 발견했을 때, 저는 승인된 솔루션을 발견했습니다. https://stackoverflow.com/a/821856/7177892, 은 CASE 문의 결과를 오늘(GETDATE() 또는 실제 날짜로 만들어 단순화할 수 있었습니다.
원본:
ORDER BY (CASE WHEN [Submission Date] IS NULL THEN 1 ELSE 0 END) DESC,
[Submission Date] DESC
단순화:
ORDER BY (CASE WHEN [Submission Date] IS NULL
THEN GETDATE()
ELSE [Submission Date]
END) DESC
다른 모든 것보다 간단한 또 다른 제안이 있습니다.
SQL Server의 경우 대소문자를 제외한 대부분의 옵션이 작동하지 않습니다.
나는 이것이 실제로 나에게 매우 효과적이라는 것을 발견했습니다: ORDER BY ISNULL(Submission_Date, GETDATE() DESC
쿼리의 순서 비트에서 GETDATE() 값을 Null인 Submition_Date 값에 할당하면 순서가 올바르게 나옵니다.
이것을 먹어보세요.
일부 보기 순서에서 [제출 날짜]를 null([제출 날짜], 캐스트('1770/01/01'을 날짜 시간으로)로 선택합니다.
제출 날짜가 현재 날짜-시간보다 작다고 가정
SELECT a,b,c,[Submission Date]
FROM someView
ORDER BY ISNULL([Submission Date], GETDATE()) DESC
언급URL : https://stackoverflow.com/questions/821798/order-by-date-showing-nulls-first-then-most-recent-dates
'programing' 카테고리의 다른 글
호출 가능한 클라우드 기능이 HTTP 기능보다 더 낫습니까? (0) | 2023.07.13 |
---|---|
Python에서 구별되는 요소만 포함하는 목록을 만드는 방법은 무엇입니까? (0) | 2023.07.13 |
문서 지향 데이터베이스는 관계형 데이터베이스를 대체하기 위한 것입니까? (0) | 2023.07.13 |
Oracle 세션과 연결 풀 간의 관계 (0) | 2023.07.13 |
$ 또는 $elemMatch의 문 (0) | 2023.07.13 |