Отобразить NULL, если какое-либо значение не найдено в SQL

У меня есть пример данных здесь

 id name
 ----------
 1 Тест1
 2 Тест2
 3 Тест 3
 4 Test4

Поэтому, когда я выполняю этот QUERY

select id,name from table1 where name IN ('Test1','Test3','Test5') 

Это дает мне результат

 id name
 ----------
 1 Тест1
 3 Тест 3

Есть ли способ, который я могу получить?

 id name
 ----------
 1 Тест1
 3 Тест 3
 null Test5

Вы можете использовать конструкторы табличных значений (> = 2008):

 SELECT CASE WHEN EXISTS(SELECT 1 FROM table1 t WHERE E.Name = t.Name) THEN E.Id ELSE NULL END AS Id, Name FROM (VALUES(1,'Test1'),(3,'Test3'),(5,'Test5')) E(Id,Name) 

Это некрасиво, но CTE сделает это

 with MyData as ( select 'Test1' as MyName union select 'Test3' as MyName union select 'Test5' as MyName ) select MyData.MyName, T1.id from MyData left join Table1 T1 on T1.Name = MyData.MyName 

Конечно, используйте конструктор таблиц Values ​​с внешним соединением:

 Select o.id, m.name from (VALUES ('Test1'), ('Test3'), ('Test5')) t(name) left join myData o on o.name = t.name 

Просто слева соедините таблицу «Test1», «Test3», «Test5» с соответствующей таблицей

 select id,t.name from ( select 'Test1' as Name union select 'Test3' as Name union select 'Test5' as Name ) t left join table1 on t.Name = table1.Name; 

Это будет перечислять все совпадающие идентификаторы или возвращать null как id. Вы можете вернуть только 3 строки, затем

 select max(id) -- min(id) , t.name from ( select 'Test1' as Name union select 'Test3' as Name union select 'Test5' as Name ) t left join table1 on t.Name = table1.Name group by t.name; 
  • SQL Server - Недостатки производительности и размера нулевых столбцов
  • Имеет ли NULL тип данных?
  • Как отправить «NULL / DbNull» в столбец таблицы с типом данных: nullable int
  • суммарная сумма sql с нулевыми значениями при определенных условиях
  • Замените пустые ячейки значениями NULL в большом количестве столбцов
  • Проверка функции SQL MAX (), возвращающей значение null
  • SQL Server - установить поле в одно текстовое значение, если NULL, добавить другое текстовое значение, если нет
  • Инкремент int на 1 в sql-сервере?
  • Мастер импорта SQL Server обрабатывает NULL как строку буква «NULL»
  • Если значение возвращает значение. Если запись не существует или когда столбец имеет значение null, верните 0 в Sql Server - разными способами
  • Почему ExecuteScalar () возвращает null, когда мои возвращаемые значения не равны нулю?
  • Давайте будем гением компьютера.