Một số bài viết tôi tìm thấy trên internet so với ISNULL với COALESCE, vì vậy tôi nghĩ câu hỏi của tôi hơi khác một chút.COALESCE và KHÔNG CÓ hiệu suất NULL khi kiểm tra chuỗi trống
Tôi tự hỏi điều gì là tốt hơn về hiệu suất?
SELECT * FROM mytable WHERE mycolumn IS NOT NULL AND mycolumn <> '';
Hoặc
SELECT * FROM mytable WHERE COALESCE(mycolumn,'') <> '';
Ngoài biểu diễn, được có bất kỳ mối quan tâm khác tôi nên xem xét khi quyết định?
EDIT:
Tôi đang sử dụng Teradata.
Là câu hỏi tiếp theo, nếu chúng tôi biết rằng chỉ mục sẽ được sử dụng, chúng tôi có thể tự động tối ưu hóa sql (hậu trường) và dịch COALESCE (mycolumn, '') <> '' thành cột của tôi KHÔNG NULL và mycolumn <> ''. Tôi có ý nghĩa không? – Russell
Tôi tin rằng bạn có thể thấy rằng NUSI có thể không được sử dụng để đáp ứng sự so sánh bất bình đẳng. Thật đáng để xem EXPLAIN để xác nhận xem trình tối ưu hóa có đang sử dụng NUSI hay không. –