3 개의 열이있는 테이블이 있습니다. 첫 번째 열에는 ID가 포함되고 다른 두 열에는 날짜가 포함됩니다 (최대 하나는 null이지만 아무 것도 영향을 미치지 않습니다). 어떤 날짜가 더 큰지에 따라 ID를 주문하려면 어떻게해야합니까? 시도했습니다.두 개의 서로 다른 (null 일 수도 있음) 열의 SQL 순서
ORDER BY CASE
WHEN date1 > date2 THEN date1
ELSE date2
END
하지만 작동하지 않았습니다. 누구든지 나를 도울 수 있습니까? 또한 다른 사람들이 보았던 유사한 문제는 모두 쿼리가 첫 번째 열인 을 기반으로 결과를 정렬하고 첫 번째 열이 null 인 경우 인 두 번째 열이 정렬되도록합니다. 먼저 모든 단일 null 값을 정의해야합니까? 완전 외부 조인을 통해이 테이블을 만들므로 물어 보는 것은 완전히 다른 질문이 될 것이므로 잘하면 null 값을 사용하여 수행 할 수 있습니다.
'CASE' 표현은'date2'가 null 인 경우를 지원하지 않는다는 점을 제외하고 나에게 잘 들립니다. 그것을 지원하기 위해서, 당신은 '주문 일 경우 날짜 1> 날짜 2 또는 날짜 2 IS NULL THEN 날짜 1 ELSE 날짜 2 END'를 써야한다고 말하고 싶습니다. 그러나 당신은 그것이 "효과가 없다"고 말합니다. 더 자세하게 얘기해 주 시겠어요? 예를 들어, 올바르게 주문하지 못한 실제 데이터를 게시 할 수 있습니까? – ruakh
게이브, 어떤 데이터베이스가 쿼리를 실행할 것입니까? –
죄송합니다. 나는 그들 모두가 똑같이 일했다고 생각했습니다. 하지만 오라클을 사용하고 있습니다. 그게 충분히 특이한 지 모르겠다. : S –