0

値を持つテーブル myTblを用意する

ID  Number
1    12458
2    45896  
3    12458
4    87456

次のようなクエリがあります:

SELECT TOP 1 n.abonent_name , ad.address
FROM dbo.names n 
INNER JOIN dbo.addresses ad on n.address_id = ad.id
WHERE n.number = (every number from myTbl)

クエリのWhere 句に myTbl から各番号を挿入し、各番号の応答を仮想テーブル#tbl挿入します。 #tbl など

CREATE TABLE #tbl
(
   id identity(1,1),
   abonent_name varchar(20),
   address varchar(50)
)

カーソルなしで書きたい

4

2 に答える 2

1
SELECT TOP 1 n.abonent_name , ad.address
FROM dbo.names n 
INNER JOIN dbo.addresses ad on n.address_id = ad.id
WHERE n.number IN (SELECT number from myTbl)

上で試してください。しかし、次のようにすれば一石二鳥です。

SELECT  ROW_NUMBER() OVER (order by n.abonent_name) AS ID, n.abonent_name , ad.address
INTO #tbl
FROM dbo.names n 
INNER JOIN dbo.addresses ad on n.address_id = ad.id
WHERE n.number IN (SELECT number from myTbl)
于 2013-10-29T08:04:27.083 に答える