【发布时间】:2020-03-19 22:32:09
【问题描述】:
我有这个结构
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 'NO'。
我想从#Test 中选择所有行,这样如果不同的Field1 值具有多个Field2 值,则返回除Field2='NO' 的行之外的所有内容,否则返回'NO' 值。
所以结果应该是这样的
AAA只有'NO',所以我们返回它,BBB有多个,所以返回除了'NO'之外的所有东西。
我想在一个语句中选择它,而不删除等。我尝试了Field1分区的ROW_NUMBER(),但这并没有解决问题。
【问题讨论】:
标签: sql sql-server tsql sql-server-2017