Cả hai đều hoạt động như nhau, vì mệnh đề SELECT trong EXISTS không bao giờ được đánh giá. Bạn có thể kiểm tra bằng cách sử dụng:
... EXISTS(SELECT 1/0 FROM TABLE)
Điều đó sẽ kích hoạt lỗi chia cho 0, nhưng sẽ không.
Cá nhân tôi thích sử dụng NULL hơn vì rõ ràng là không có gì được tham chiếu trong bảng, vì vậy nó dễ hiển thị hơn cho những người khác. Việc chọn một giá trị, như số INT 1 trong ví dụ thứ hai, có thể dẫn đến các giả định về điều gì đang xảy ra nếu không quen thuộc với mệnh đề EXISTS.