У меня есть таблица с именем Users
с столбцом Limit
, который содержит целочисленные значения. У каждого пользователя есть ограничение, но у незарегистрированных пользователей предел по умолчанию равен 1.SQL Server ISNULL/Coalesce все еще возвращает пустые списки
Я хочу запустить простой запрос, который сообщает мне лимит для пользователя, если он зарегистрирован или по умолчанию равен 1, если они не зарегистрированы пользователей, однако при запуске запроса с любой ISNULL
или Coalesce
как написано ниже:
SELECT coalesce(Limit,1) AS limit
FROM User
WHERE userID = 'testUser'
запрос будет работать нормально, если я запрос на существующего пользователя, но возвращает пустой список, если я пытаюсь незарегистрированного пользователя [он должен возвращать одну строку со значением 1].
Использование ISNULL
вместо coalesce дает тот же результат. Каждый пример, который я нашел из ISNULL
и coalesce, выглядит таким образом. Что мне не хватает?
структура Share таблицы и примеры данные. Я предполагаю, что ваш запрос не возвращает строку для незарегистрированных пользователей, поэтому все работает так, как должно. – lad2025
Похоже, что пользователь не существует в таблице «Пользователь». Что возвращает простой 'SELECT *' для указанного идентификатора пользователя? –
Незарегистрированные пользователи не существуют в таблице «Пользователи». В частности, я бы использовал их IP как userID [это будет храниться в другой таблице для других целей] – ConnorU