У меня есть эта структура
CREATE TABLE #Test
(
Field1 VARCHAR(10),
Field2 VARCHAR(10)
)
INSERT #Test VALUES('AAA','NO'),
('BBB','NO'),
('BBB','YES'),
('BBB','SURE'),
('CCC','NO'),
('DDD','NO'),
('DDD','YES'),
('DDD','ALWAYS')
SELECT * FROM #Test
Каждое отдельное значение Field1
имеет Field2
'НЕТ'. Я хочу выбрать все строки из #Test
, чтобы при различном значении Field1
иметь несколько значений Field2
, вернуть все, кроме строки с Field2
= 'NO', в противном случае вернуть значение 'NO'. Таким образом, результат должен быть следующим:
AAA имеет только «NO», поэтому мы возвращаем его, BBB имеет несколько, поэтому возвращаем все, кроме «NO».
Я хочу выделить его одним оператором без удаления и т. Д. c .. Я попытался ROW_NUMBER()
разбить на Field1
, но это не решило проблему.