#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