Ϊʲôorder byûЧ¹û
select a,b,c,sum(e)
from tableA
group by a,b,c
order by case when (select count(tb.tableBPK) from tableB as tb where tb.fieldA = d)> 2 then 0 else 1 end
tableA±íÓÐn¸ö×Ö¶Î(a,b,c,d....),tableB.fieldAºÍtableA.dÊÇÍ⽨¹ØÏµ
ÏÖÔÚÒªtableBÖгöÏÖ¹ýtableA.d ´óÓÚ2´ÎµÄÅÅÇ°Ãæ
ÏÖÔÚÓÐÕâ¸öorder by ºÍûÓÐorderby¶¼Ã»ÓÐÊ²Ã´Çø±ð
ÒòΪÒÔǰÉè¼ÆÓеãÎÊÌâgroup by a,b,c֮ǰµÄ²¿·Ö²»ÔõôºÃ¸Ä,ËùÒÔÖ»Äܶ¯order by ºóÃæ²¿·Ö
²¢ÇÒºÍselect a,b,c from tableA group by a,b,c±ØÐëÔÚsqlserver2kÏ¿ÉÒÔÔËÐÐ
ЧÂÊÔÝʱ²»¿¼ÂÇ,·´Õý2¸ö±íÊý¾ÝÒ²²»»á³¬¹ý1wÌõ,1¸öÔÂÒ²¾ÍÅܼ¸´Î
[½â¾ö°ì·¨]
select a,b,c,e from
(select a,b,c,sum(e) e,case when (select count(tb.tableBPK) from tableB as tb where tb.fieldA = d)> 2 then 0 else 1 end ´ÎÊý
from tableA
group by a,b,c) as t
order by t.´ÎÊý desc