Niektóre artykuły znalezione w Internecie porównywały ISNULL z COALESCE, więc myślę, że moje pytanie jest trochę inne.COALESCE vs IS NOT NULL wydajność przy sprawdzaniu pustego ciągu znaków
Zastanawiam się, który jest lepszy pod względem wydajności?
SELECT * FROM mytable WHERE mycolumn IS NOT NULL AND mycolumn <> '';
Albo
SELECT * FROM mytable WHERE COALESCE(mycolumn,'') <> '';
Inne niż wydajność, czy są jakieś inne kwestie należy wziąć pod uwagę przy podejmowaniu decyzji?
EDIT:
Używam Teradata.
Jako kolejne pytanie, jeśli wiedzieliśmy, że indeks zostanie użyty, możemy być w stanie automatycznie zoptymalizować sql (za kulisami) i przetłumaczyć COALESCE (mykolumn, '') <> '' na mykolumę NIE JEST NULL i mykolumn <> ''. Czy mam sens? – Russell
Wierzę, że może się okazać, że NUSI nie może być użyte do zaspokojenia nierówności. Warto sprawdzić EXPLAIN, aby sprawdzić, czy optymalizator używa NUSI. –