| 操作 | SQL Server | Oracle |
|---|---|---|
| 替換 NULL | ISNULL(expr, replacement) | NVL(expr, replacement) |
| 判斷 NULL | IS NULL / IS NOT NULL | IS NULL / IS NOT NULL |
ORDER BY ASC 時排在最後。ORDER BY ASC 時排在最前。無法直接修改引擎預設行為,但可用 CASE 表達式調整排序權重:
SELECT [id]
FROM [demo].[dbo].[orders]
ORDER BY CASE WHEN id IS NULL THEN 1 ELSE 0 END, id;
此寫法將非 NULL 值優先排序,NULL 值置於最後,效果與 Oracle 一致。
若欄位有索引,加上 CASE 可能導致索引掃描而非索引搜尋,需根據執行計畫評估效能。