у меня такая структура
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
='НЕТ', в противном случае возвращалось значение 'НЕТ'. Итак, результат должен быть таким
В AAA есть только «НЕТ», поэтому мы возвращаем его, в BBB их несколько, поэтому возвращаем все, кроме «НЕТ».
Я хочу выбрать его в одном выражении, не удаляя и т. д. Я пробовал ROW_NUMBER()
, разделенный на Field1
, но это не решает проблему.