ソート日が必要で、次のコードを使用します。
SELECT TID, TName, TOrder
FROM tblOrder
ORDER BY TOrder
結果:
1 maikel null
5エミルヌル
4カブール1
3サミン2
2ミハド3
しかし、私はこの結果が欲しいです:
4カブール1
3サミン2
2ミハド3
1 maikel null
5エミルヌル
昇順で私を助けてください。
SELECT TID, TName, TOrder
FROM tblOrder
ORDER BY CASE WHEN TORDER IS NULL THEN 1 ELSE 0 END,
TOrder
Linq:
var x = from a in tblOrder
orderby (a.TORDER == null ? 1 : 0), a.TORDER
select a
「ORDERBYTOrderASC」を使用してみてください。
あなたが使用することができますCOALESCE
:
SELECT TID, TName, TOrder
FROM tblOrder
ORDER BY COALESCE(TOrder,'9999-12-31 23:59:59.997')
これは、SQL Server の最も簡単な方法です。
SELECT TID, TName, TOrder
FROM tblOrder
ORDER BY isnumeric(TOrder) DESC, TOrder
MySQL や PostgreSQL などの他のデータベースの場合、より簡単な解決策があります。
SELECT TID, TName, TOrder
FROM tblOrder
ORDER BY TOrder IS NULL, TOrder
Oracle と PostgreSQL の場合、これは機能し、TOrder の可能なインデックスを利用します。
SELECT TID, TName, TOrder
FROM tblOrder
ORDER BY TOrder ASC NULLS LAST
このクエリとフィドルを見てください
SELECT TID, TName, TOrder INTO #TempTab
FROM tblOrder
WHERE TOrder IS NOT NULL
ORDER BY TOrder
SELECT * FROM #TempTab
UNION ALL
SELECT TID, TName, TOrder
FROM tblOrder
WHERE TOrder IS NULL;