2010-12-27 2 views
1

私は、Region_TownPageテーブルからすべてのtownIDを取得するストアドプロサイエータを作成しようとしています。それから私は市を取得する必要があります、すべてのtownIDの国家初期。SQLでの配列の使用は可能ですか?

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

の複雑さに応じて、テーブルを使用するもう1つの答えが望ましいかもしれません。後で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) 
関連する問題