4
У меня есть следующий SQL запрос сервера:SQL Server Query Странная Выход
SELECT ISNULL(MIN(P), 999) AS FLD
FROM (SELECT '0' AS P) AS T
WHERE (1 > 4)
Как прийти выход этого запроса '*'?
Пожалуйста, объясните
Благодаря
насчет 1> 4? SELECT ISNULL (MIN ('0'), 999) ГДЕ 1> 4 дает '*', но SELECT ISNULL ('0', 999) ГДЕ 1> 4 дает пустой результат! –
@ Scorpi0 Агрегаты без 'GROUP BY' или' HAVING' всегда будут возвращать ровно одну строку. Это скалярный агрегат (в отличие от векторного агрегата). Скалярный агрегат 'MIN' на пустом результирующем наборе вернет' NULL' –
Я все еще запутался. SELECT ISNULL (MIN ('0'), 999) выводит '0'. тот факт, что нет предложения WHERE, изменило характер оператора MIN? –