Как получить результат типа данных столбца int из таблицы, и если запись не найдена, выберите 0 по умолчанию в Microsoft SQL Azure
Я пробовал ISNULL, но это не работает.
Если есть таблица с именем student.
Имя_столбца тип_данных
Roll_nbr целое число
Имя varchar(30)
Выберите ISNULL (roll_nbr, 0) ОТ студента, где имя = 'Сэм;
Я ожидаю, что запрос вернет roll_nbr из таблицы, если она существует, иначе вернет 0 по умолчанию, если строки не найдены.
Вы имеете в виду, если не существует записи, как в строке таблицы, или не существует записи, как в значении NULL?
Вы пробовали ISNULL где? Отредактируйте вопрос, чтобы показать код попытки и результат.
Если есть таблица с именем student. Имя столбца data_type roll_nbr int name varchar(30) Выберите ISNULL(roll_nbr,0) FROM student where name = 'Sam'; Я ожидаю, что запрос вернет roll_nbr из таблицы, если она существует, иначе вернет 0 по умолчанию, если строки не найдены.
SELECT TOP 1
CASE
WHEN EXISTS(SELECT 1 FROM Student WHERE name = 'Sam') THEN roll_nbr
ELSE 0
END
FROM Student
Вы можете изменить свой запрос Azure Sql, как показано ниже.
Использование ОБЪЕДИНЕНИЯ()
SELECT COALESCE((SELECT Roll_nbr FROM student WHERE NAME = 'Sam'), 0);
(http://sqlfiddle.com/#!18/9a6eaf/2)
Подзапрос вернет RollNumber, если он удовлетворяет условию where, иначе он вернет пустой/нулевой результат. Использование функции COALESCE в подзапросе вернет первое ненулевое значение.
Использование ISNULL()
SELECT ISNULL((SELECT Roll_nbr FROM student WHERE NAME = 'Sam'), 0)
Http://sqlfiddle.com/#!18/9a6eaf/6
Вместо COALESCE() можно использовать ISNULL(). Функция ISNULL принимает только 2 аргумента, используемых для замены нулевого значения, и это функция T-SQL. Функция COALEASCE основана на стандарте ANSI SQL и принимает 1-n аргументов, она сначала возвращает ненулевое значение.
Большое спасибо, это сработало именно так, как я ожидал.
Поддерживает ли Azure coalesce?