Oracle tương đương với hàm IsNull () của SQL Server là gì?


Câu trả lời:


131

coalesceđược hỗ trợ trong cả Oracle và SQL Server và phục vụ về cơ bản cùng một chức năng như nvlisnull. (Có một số điểm khác biệt quan trọng, coalescecó thể nhận một số lượng đối số tùy ý và trả về đối số không rỗng đầu tiên. Kiểu trả về cho isnullkhớp với kiểu của đối số đầu tiên, không đúng với coalesce, ít nhất là trên SQL Server.)


9
+1: COALESCElà ANSI, được hỗ trợ bởi Postgres, MySQL ... Cảnh báo duy nhất là nó không nhất thiết phải hoạt động nhanh như cú pháp gốc.
OMG Ponies

17
+1 cho COALESCE, có một lợi ích quan trọng hơn NVL: nó thực hiện đánh giá phím tắt, trong khi NVLluôn đánh giá cả hai tham số. So sánh COALESCE(1,my_expensive_function)với NVL(1,my_expensive_function).
Jeffrey Kemp

Đây COALESE()chức năng là tuyệt vời và bạn có thể đọc về nó trên MSDOC> liên hiệp - cú pháp này cùng hoạt động trên Oracle. Nếu dữ liệu của bạn có chuỗi rỗng thay vì NULLS bạn có thể cần một cái gì đó như thế này: COALESCE(TRIM(Tbl.myField1), TRIM(Tbl.myField2)) AS "myNewField".
SherlockS Spreadsheets

108

Thay vì ISNULL(), sử dụng NVL().

T-SQL:

SELECT ISNULL(SomeNullableField, 'If null, this value') FROM SomeTable

PL / SQL:

SELECT NVL(SomeNullableField, 'If null, this value') FROM SomeTable

2
Trả lời câu hỏi một cách rõ ràng.
Gary Huckabone

31

Cũng sử dụng NVL2như bên dưới nếu bạn muốn trả về giá trị khác từ field_to_check:

NVL2( field_to_check, value_if_NOT_null, value_if_null )

Cách sử dụng: ORACLE / PLSQL: NVL2 FUNCTION


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.