と別のテーブルの結果に基づいてテーブルを更新し、私は2つの私のデータベース内のテーブル、そのうちの一つがDescription
が含まれており、Code
列を持っているSQL Serverの:サブ
TABLE_1
Description | Code
--------------------
123 street 23
321 street2 12
342 blabla 1
他テーブルは、ID列、説明列を有する
Table_2
Id | Description
------------------------------
41 street (textidontwant)
22 street2 (textidontwant)
33 blabla (textidontwant)
基本的には、表1のCode
を表2のId
に更新しますが、表1の説明と一致するように表2の説明をトリミングするには部分文字列を使用する必要があります。
私はすでに、次のされサブクエリを、書いた:
SELECT LEFT([Description], CHARINDEX('(', [Description]) - 1)) FROM Table_2
ここでこの権利は、括弧内のテキストだけで罰金トリムが、問題は私ができるように見えることはできませんということですTable_1のコード列をTable_2のIDで更新する
試しましたこのやって:
UPDATE Table_1
SET Code = (SELECT T2.Id FROM Table_2 T2)
WHERE Table_1.[Description] = (SELECT LEFT([Description], CHARINDEX('(', [Description]) - 1)) FROM Table_2)
を、私はこのエラーを取得:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
任意のアイデア?
ありがとうございました!