-1
我有我的數據庫2個表,其中一個包含Description
和Code
列SQL服務器:更新基於另一個表的結果的表與子串
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
,其中Id
來自表2,但是我需要使用子字符串修剪表2中的描述,以便文本與表1中的描述相匹配。
我已經寫的子查詢,它是這樣的:
SELECT LEFT([Description], CHARINDEX('(', [Description]) - 1)) FROM Table_2
這裏這個權利修剪括號就好內的文本,但問題是,我似乎無法能夠用Table_2更新Table_1代碼列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.
任何想法?
感謝您的幫助!