2012-03-02 3 views
0

내 select 쿼리의 by 절에서 테이블 반환 함수를 사용할 수 있습니까 ???? 이처럼order by 절의 테이블 값 함수 사용

:

declare @ID int 
set @ID=9011 
Exec ('select top 10 * from cs_posts order by ' + (select * from dbo.gettopposter(@ID)) desc) 

GetTopPoster (ID)를 내 테이블 반환 함수입니다.

도와주세요.

+0

select 결과를 문자열에 연결하려고합니까? 그게 어떻게 작동할까요? – Oded

+0

코드를 사용해 보셨습니까? '예'라고 대답하는 경우 오류가 발생합니다. –

+0

select *가 둘 이상의 결과를 반환하면 작동하지 않습니다. –

답변

0

예. 테이블 반환 함수는 일반 테이블과 마찬가지로 사용할 수 있습니다.

TVF에도 불구하고 쿼리가 유효한 SQL이 아닙니다. 더 참고로

: 당신은 join와 테이블 반환 함수를 사용할 수 있습니다 http://msdn.microsoft.com/en-us/library/ms191165.aspx

2


. - 어떻게에 의해 주문을 해야할지 않습니다

select top 10 * 
from cs_posts p 
join dbo.gettopposter(@ID) as gtp 
on  p.poster_id = gtp.poster_id 
order by 
     gtp.col1 
,  gtp.col2 
0

당신은 그런 식으로 할 수 없습니다 : 그것은 또한 당신이 기준으로 정렬 할 컬럼의 조합을 선택할 수 있습니다? TVF가 원래 쿼리와 어떤 관련이 있는지 알지 못합니다. 그러나 두 가지를 결합 할 수는 있습니다 (TVF와 관련된 id 열이 cs_posts에 있다고 가정하고 TVF ID 열을 기준으로 정렬합니다).