您可以这样使用
ROW_NUMBER:
SELECt FieldA, FieldB, FieldCFROM ( SELECt FieldA, FieldB, FieldC, ROW_NUMBER() OVER (PARTITION BY FieldA ORDER BY CASE WHEN FieldC = 'X' THEN 1 ELSE 2 END, FieldB) AS rn FROM mytable) AS tWHERe t.rn = 1
上面的查询从每个
FieldA分区中选择一条记录。它优先
FieldC = 'X'于所有其他记录的记录。



