2010-12-27 4 views
1

Region_TownPage 테이블에서 모든 townID를 가져 오는 저장 프로 시저를 작성하려고합니다. 그럼 나는 도시를 얻어야한다. 모든 도시의 국회의원 들이야.SQL에서 Array 사용 가능?

Alter PROCEDURE [dbo].[GetTownDetailsforRegionID] 
@RegionID int 

AS 
BEGIN 
Declare @townID int 

    set @townID = (Select townID from Region_TownPage where regionID [email protected]) 

SET NOCOUNT ON; 

    Select City, StateInitials,TownID from TownPage where TownID [email protected] 


END 

여기 SQL에서 배열을 사용하는 방법을 모르겠습니다. 누군가 내가이 일을하도록 도울 수 있다면 정말 고맙습니다.

미리 감사드립니다.

답변

5

같은 당신이 배열을 필요가 있다고 생각하지 않는 것입니까?

Select r.RegionId, 
     t.TownId, 
     t.City, 
     t.StateInitials 

From Region_TownPage r 
Join TownPage t on r.TownId = t.TownId 
Where r.RegionId = @RegionId 
+2

이 질문을 그의 실제 쿼리라고 가정하면 이것이 최선의 방법이라고 생각합니다. 그렇지 않은 경우 쿼리 – JoshBerke

+0

의 복잡성에 따라 테이블 사용에 대한 다른 대답이 바람직 할 수 있습니다. 나중에 SP에서 뭔가 기억하기 위해 townID를 유지할 필요가 없다면이 방법을 사용하는 것이 좋지만 작은 예제에서는 조인이 더 나은 해결책이 될 것입니다. – bflosabre91

+0

그게 전부 완료되었습니다. 굉장해. 고맙습니다!! – Ram

4

int 대신 테이블 변수를 선언합니다. 그냥 테이블에 가입해야 - 그래서

DECLARE @tab table(townID int) 

INSERT INTO @tab 
SELECT townID from Region_TownPage WHERE regionID = @RegionID 

Select * From TownPage WHERE TownID IN(SELECT townID FROM @tab)