Tất cả các phương pháp ngắn hơn này đều có một số nhược điểm là chậm, không trực quan, có khả năng xảy ra lỗi (tránh các giá trị ma thuật bất cứ khi nào có thể) và độc quyền hơn các điều kiện bình thường như VÀ / HOẶC / LÀ KHÔNG ĐỦ / KHÔNG ĐỦ.
NVL, DECODE, COALESCE, v.v., có thể đắt hơn bạn nghĩ.
Tôi đã thấy điều này rất nhiều lần trong một số bối cảnh khác nhau, đây là một ví dụ đơn giản:
--Shorter method: Takes about 0.45 seconds
declare
j number;
begin
for i in 1 .. 1000000 loop
j := i;
if nvl(i <> j, (i is null) <> (j is null)) then
null;
end if;
end loop;
end;
/
--Normal method: Takes about 0.25 seconds
declare
j number;
begin
for i in 1 .. 1000000 loop
j := i;
if i <> j or (i is null and j is not null) or (i is not null and j is null) then
null;
end if;
end loop;
end;
/
Tôi khuyên bạn nên dành thêm giây để gõ nó theo cách hợp lý. Mã của bạn sẽ trông đẹp hơn và chạy nhanh hơn.