Как получить результат типа данных столбца int из таблицы, и если запись не найдена, выберите 0 по умолчанию в Microsoft SQL Azure

Как получить результат типа данных столбца int из таблицы, и если запись не найдена, выберите 0 по умолчанию в Microsoft SQL Azure

Я пробовал ISNULL, но это не работает.

Если есть таблица с именем student.

Имя_столбца тип_данных

Roll_nbr целое число

Имя varchar(30)

Выберите ISNULL (roll_nbr, 0) ОТ студента, где имя = 'Сэм;

Я ожидаю, что запрос вернет roll_nbr из таблицы, если она существует, иначе вернет 0 по умолчанию, если строки не найдены.

Поддерживает ли Azure coalesce?

Isolated 13.02.2023 19:18

Вы имеете в виду, если не существует записи, как в строке таблицы, или не существует записи, как в значении NULL?

SBFrancies 13.02.2023 19:20

Вы пробовали ISNULL где? Отредактируйте вопрос, чтобы показать код попытки и результат.

June7 13.02.2023 20:38

Если есть таблица с именем student. Имя столбца data_type roll_nbr int name varchar(30) Выберите ISNULL(roll_nbr,0) FROM student where name = 'Sam'; Я ожидаю, что запрос вернет roll_nbr из таблицы, если она существует, иначе вернет 0 по умолчанию, если строки не найдены.

Nishant Prabhakar 14.02.2023 07:50
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
4
66
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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 аргументов, она сначала возвращает ненулевое значение.

Большое спасибо, это сработало именно так, как я ожидал.

Nishant Prabhakar 14.02.2023 11:09

Другие вопросы по теме