3

私がこれを求めているのなら許してください、しかし私はSQLServerでもSQL開発者でもありません。

テーブルにインポートするCSVがあり、SQLServer2005でその場で作成するTと呼びましょう。

私がやりたいのは、作成したテーブルTにインポートされたデータに基づいて、他のテーブルに対していくつかのクエリを実行することです。例 :

select * 
from TableX 
where customerID = [this should contain the customerID from the table T]

そして、それを見つけた場合は、同じテーブルTを更新する必要があります。そうでない場合は、そのcsvファイルの最後のレコードまで移動します。任意のアイデアをいただければ幸いです。

4

2 に答える 2

5

必要なものにループは必要ありません。必要なのは次のようですIN

SELECT *
FROM TableX
WHERE CustomerID IN (SELECT CustomerID FROM TableT)

TableXに存在する場合は、マークを付けて更新する必要がある場合はTableT、次のようになります。

UPDATE TableX
SET Mark = 1
WHERE CustomerID IN (SELECT CustomerID FROM TableT)

TableXからの値で更新する必要がある場合はTableT、次のようになります。

UPDATE X
SET X.Column = T.Column
FROM TableX X
INNER JOIN TableT T
ON X.CustomerID = T.CustomerID 
于 2012-10-19T20:39:36.587 に答える
3

ループはSQLの危険信号であり、通常は必要ありません。SQLは集合論に基づいています。JOINを理解すれば、繰り返す必要はほとんどありません。

したがって、あなたの場合、いいえ、ループは必要でも良い考えでもありません。

于 2012-10-19T20:38:32.333 に答える