Как вернуть значение поиска, которого нет в базе данных?

#sql-server

#sql-server

Вопрос:

Предположим, что в table1 есть некоторые значения, которые говорят (‘1′,’2′,’3′,’ C’,’D’,’E’).

Мой запрос:

 Select T.value from table1 T where T.value in ('1','2','3','A','B','C')
  

Я хотел вернуть ‘A’, ‘B’ по одному в строке результата или в отдельной ячейке.

Как мне это сделать?

Редактировать

Согласно ответу Стива, я немного изменил его, и у меня это сработало.

 Select value from (values ('A'),('B'),('1')) table1(value)
except
Select value from (select value from table1) table1(value);
  

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

1. Что вы подразумеваете под 1 строкой? Вы хотите новый объект с двумя свойствами, строку с разделителем, например, запятой, что-то еще? Каков ожидаемый результат?

2. Ваш заголовок и описание не совпадают. В заголовке вы говорите, что хотите вернуть «данные, которые недоступны», а в вопросе вы хотите вернуть одну строку. Что это? Каков ваш ожидаемый результат здесь?

3. Любой, мне просто нужно вернуть ‘A’ и ‘B’

4. Итак, что не так с вашим запросом? Если вы просто хотите 'A' и 'B' , почему вы передаете '1' , '2' '3' и 'C' тоже?

5. @Larnu Я изменил заголовок. извините

Ответ №1:

Вот пример использования строк в виртуальных таблицах

 Select test_value from (values ('1'),('2'),('3'),('A'),('B'),('C')) table1(test_value)
except
Select test_value from (values ('1'),('2'),('3'),('C'),('D'),('E')) table1(test_value);
  

Результаты

 test_value
A
B
  

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

1. Не похоже на этот SteveC. Я заменяю таблицу, и она по-прежнему показывает A и B.

2. «Ну ладно, небольшая модификация, и у меня это сработало» Ты должен поделиться, что это такое, @RitaShroff .

3. тестировал это @SteveC