SQL where在具有order by的SQL子查询中
这是我的问题SQL where在具有order by的SQL子查询中,sql,sql-server,Sql,Sql Server,这是我的问题 SELECT * FROM Place WHERE Place.Id IN ( SELECT TOP 10 PlaceId from #ResultPlaceList order by CPlaceId desc) 我的结果是按Place.ID排序的,但我希望得到一个具有排序CPlaceId的结果。类似于这样的内容 SELECT * FROM PLACE WHERE PLACE.ID IN ( SELECT PLACEID FROM (
SELECT * FROM Place WHERE Place.Id IN (
SELECT TOP 10 PlaceId from #ResultPlaceList order by CPlaceId desc)
我的结果是按Place.ID排序的,但我希望得到一个具有排序CPlaceId的结果。类似于这样的内容
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
)
像这样的
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
)
您必须进行连接才能完成此操作。它看起来像这样:
SELECT TOP 10 Place.*
FROM Place
JOIN #ResultPlaceList ON #ResultPlaceList.PlaceId = Place.Id
ORDER BY CPlaceId DESC
您必须进行连接才能完成此操作。它看起来像这样:
SELECT TOP 10 Place.*
FROM Place
JOIN #ResultPlaceList ON #ResultPlaceList.PlaceId = Place.Id
ORDER BY CPlaceId DESC
您可以使用联接来使用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;
您可以使用联接来使用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;
'选择C.ID
来自客户详细信息C
C.ID=U.ID上的左连接用户信息U
按U.ID订购'
你能这样修改你的查询吗?选择C.ID
来自客户详细信息C
C.ID=U.ID上的左连接用户信息U
按U.ID订购'
您可以这样修改您的查询吗对不起。您是否收到任何错误或未收到预期的输出?这不是我所期望的,无论如何,感谢您的关注抱歉。您是否收到任何错误或未收到预期的输出?这不是我所期望的,无论如何,感谢您的关注您的位置表是否有CPlaceId列?您的位置表是否有CPlaceId列?