반응형
Linq OrderByDescending, 먼저 null
데이터베이스에 DateTime이있는 필드가 있습니까?. NULL이 맨 위에 표시되도록 결과를 정렬하고 DateTime별로 내림차순으로 내림차순으로 표시합니다.
null
null
2012-04-01
2012-01-01
2011-09-04
그 이유는 일부 항목이 만료되지 않지만 만료 날짜를보고 있기 때문입니다.
정렬 식 대신 DateTime.MaxValue 를 반환 할 수 null
있으므로 null
날짜가있는 행이 먼저 정렬됩니다.
yourData.OrderByDescending(row => row.dateTimeField ?? DateTime.MaxValue);
가장 간단한 방법은 다음과 같습니다.
data.OrderBy(Function(o) o.myDate IsNot Nothing).ThenByDescending(Function(o) o.myDate)
C #에서는 ...
data.OrderBy(o => o.myDate != null).ThenByDescending(o => o.myDate)
이것은 LINQ to SQL에서도 작동합니다. if(nullable, value)
SQL로 성공적으로 번역 되는지 확실하지 않습니다 .
다음과 같이 시도해 볼 수 있습니다.
var nulls = table.Where(x => x.NullableDateTimeField == null);
var notNulls = table.Where(x => x.NullableDateTimeField != null);
var result = nulls.Concat(notNulls.OrderByDescending(x => x.NullableDateTimeField));
"매우 효율적일 것"보다 "분명히 정확"하지만 적어도 시작점입니다.
David Oesterreich의 블로그를 살펴보십시오 .
var queryResult =
orderedProducts from enumerableProducts
order by orderedProducts.ProductName,
orderedProducts.Price != null ? 1 : 0 descending,
orderedProducts.Price
select orderedProducts;
위의 허용 된 버전과 같지만 C # v6에 대한 구문
tickets.OrderByDescending(x => x?.Erstellt ?? DateTime.Now)
참고 URL : https://stackoverflow.com/questions/7291435/linq-orderbydescending-null-first
반응형
'developer tip' 카테고리의 다른 글
Android의 WindowManager는 무엇입니까? (0) | 2020.12.07 |
---|---|
UIToolbar의 높이를 변경하는 방법이 있습니까? (0) | 2020.12.06 |
.android 폴더에 debug.keystore가 없습니다. (0) | 2020.12.06 |
MVC Html.Partial 또는 Html.Action (0) | 2020.12.06 |
Microsoft Visual Studio 2012 오류 : 제약 조건과 일치하는 내보내기를 찾을 수 없습니다. (0) | 2020.12.06 |