просто к вашему сведению, ответ был бы другим, если бы вы говорили о предложении «Где».Если вы сделаете:
SELECT ISNULL(MyField , 'No Data')
FROM MyTable
WHERE MyField ='myvalue'
SQL Server сделает индекс SEEK (к чему вы всегда должны стремиться), но если вы сделаете:
SELECT ISNULL(MyField , 'No Data')
FROM MyTable
WHERE isNull(myColumn, 'no data') is not null --I know this check doesn't make sense, but it's just for the sake of illustration. Imagine another function instead of isNull like substring or getdate...
sql сервер будет использоватьindex SCAN
Кроме того, если SQL Server использует индекс или нет, вы должны спросить себя, какую операцию он выполняет с индексом, выполнить поиск или сканирование.