2017-03-28 32 views
0

与秩序SQL子查询这是我的查询SQL凡在

SELECT * FROM Place WHERE Place.Id IN (
    SELECT TOP 10 PlaceId from #ResultPlaceList order by CPlaceId desc) 

我的结果是由Place.ID有序的,但我想有订购CPlaceId结果。

+0

您的地方台是否有CPlaceId列? –

回答

1

你必须做一个JOIN做到这一点。它会是这个样子:

SELECT TOP 10 Place.* 
FROM Place 
JOIN #ResultPlaceList ON #ResultPlaceList.PlaceId = Place.Id 
ORDER BY CPlaceId DESC 
1

事情是这样的....

SELECT * FROM PLACE WHERE PLACE.ID IN (
    SELECT PLACEID 
    FROM (
     SELECT PLACEID 
      , ROW_NUMBER() OVER (ORDER BY CPLACEID DESC) RNUM 
     FROM #RESULTPLACELIST 
    ) TMP 
    WHERE RNUM <= 10 
) 
+0

谢谢,但它没有为我工作 – Mahyar

+0

对不起。你是否得到任何错误或没有得到预期的输出? – Pons

+0

这不是我所期待的,无论如何感谢您的关注 – Mahyar

2

你可以使用连接使用cPlaceId列排序:

select p.* 
from Place p 
join (
    select top 10 PlaceId, 
     CPlaceId 
    from #ResultPlaceList 
    order by CPlaceId desc 
    ) r on p.Id = r.PlaceId 
order by r.CPlaceId; 
+0

感谢您的关注 – Mahyar

1

“SELECT C.ID FROM为CustomerDetailsÇ LEFT JOIN的UserInfo U ONÇ .ID = U.ID 订购U.ID”

您可以修改您的查询像这样