Ошибка обращения: выражение небулевого типа, указанное в контексте, где ожидается условие

#sql #sql-server #merge #case

#sql #sql-сервер #слияние #случай

Вопрос:

Я пытаюсь выполнить операцию слияния и вставить в определенный столбец следующие строки на основе условий обращения в SQL Server. Однако я получаю:

выражение не логического типа, указанное в контексте, где ожидается условие

Я получаю ошибку в третьем СЛУЧАЕ WHEN.

 CASE 
WHEN SOURCE.oID NOT NULL THEN 'Type A'
WHEN SOURCE.bID IS NULL THEN 'Type B' 
WHEN SOURCE.oID AND SOURCE.bID IS NOT NULL THEN 'Type C'
ELSE 'null'
END
  

Комментарии:

1. . . Что такое << ?

2. Похоже, что выражение требуется раньше AND .

3. Можете ли вы попробовать: КОГДА SOURCE.oID НЕ РАВЕН НУЛЮ, А SOURCE.bID НЕ равен НУЛЮ, ТОГДА «Введите C»

4. Проголосуйте за то, чтобы оставить открытым, это распространенная ошибка при запуске, на SQL которую вы учитесь обращать внимание, AND должно использоваться для объединения двух логических выражений, его нельзя использовать для объединения двух полей, чтобы они оценивались вместе.

Ответ №1:

отсутствует третья строка, критерии первого условия должны быть примерно такими:

 WHEN SOURCE.oID IS NULL AND SOURCE.bID IS NOT NULL THEN 'Type C'