当前位置: 代码迷 >> Sql Server >> 怎么先列出某一字段不重复的记录再列其它记录
  详细解决方案

怎么先列出某一字段不重复的记录再列其它记录

热度:97   发布时间:2016-04-27 14:23:20.0
如何先列出某一字段不重复的记录再列其它记录
举例说明:
a b c

1 2 3
2 4 2
3 3 5
4 2 4
5 4 1
6 2 5

  我希望先返回字段b不重复的记录,如果记录少于5个,则继续列出其它记录(最好字段b值尽量不同)。我希望的结果是这样:
1 2 3
3 3 5
2 4 2
4 2 4
5 4 1

  我现在写的语句是:
select * from Price where (好几个组合条件) and PriceID in(select min(PriceID) from Price group by Brand) order by
  Brand是我希望尽量不重复的字段,PriceID是标识字段,我想要返回记录里的所有字段值。上面的语句只能返回Brand不重复的记录,有时候总数很少,我希望这种情况下能再返回其它记录,记录总数为20个。

------解决方案--------------------
select *
from T
where b in
(
select b
from T
group by b
having count(*) = 1
)
------解决方案--------------------
每天回帖即可获得10分可用分!
  相关解决方案