Alcuni articoli che ho trovato su Internet hanno confrontato ISNULL con COALESCE, quindi penso che la mia domanda sia un po 'diversa.COALESCE vs NON È un rendimento NULL sul controllo della stringa vuota
Mi chiedo quale sia il migliore in termini di prestazioni?
SELECT * FROM mytable WHERE mycolumn IS NOT NULL AND mycolumn <> '';
O
SELECT * FROM mytable WHERE COALESCE(mycolumn,'') <> '';
Altro che le prestazioni, ci sono altre preoccupazioni che dovrei considerare quando si decide?
EDIT:
sto usando Teradata.
Come domanda successiva, se sapessimo che verrà utilizzato un indice, potremmo essere in grado di ottimizzare automaticamente sql (dietro le quinte) e tradurre COALESCE (mycolumn, '') <> '' in mycolumn NON è NULL e mycolumn <> ''. Ho un senso? – Russell
Credo che potresti scoprire che il NUSI non può essere utilizzato per soddisfare un confronto di disuguaglianza. Vale la pena guardare EXPLAIN per confermare se l'ottimizzatore sta utilizzando o meno il NUSI. –