我有一個需要連接的表,但是在其中一個表中,我需要從每行的varchar字段中提取一個鍵。MS SQL - 在一個列中使用子串密鑰連接兩個表
表1說明(數字18,VARCHAR 4000)
descriptionid description
1 Blah Blah: Queue 1Blah Blah
2 foobar:Queue 2
3 rem:Queue 2 -This is a note
4 Anotherrow: Queue 3
5 Something else
表2隊列 - (數字18,VARCHAR 100)
queueid queue
123 Queue 1
124 Queue 2
127 Queue 3
129 Queue 4
所以我需要產生像這樣
輸出查看3隊列描述(數字18,數字18)
descriptionid queueid
1 123
2 124
3 124
4 127
5 null
因此,在表1第1行中,我需要從描述中去除Queue1值,驗證它是否在隊列表中,然後查找queueid。
我無法改變表1的結構和2
可這MSSQL達到什麼樣的方式?
在SQL中使用MSSQL 2005最有效的方法是什麼?
欣賞這可能不是最有效的方式,但是我接受它作爲答案,因爲我只需要在此過夜生成報告表。 – brianilland 2011-06-09 09:51:33
當超過9個隊列時,這不會產生錯誤匹配的風險嗎?表1中的字符串中的「隊列11」將與表2中的「隊列1」和「隊列11」匹配。 – 2011-06-09 15:47:48
@Ed Harper - 你是對的。增加了一個可以選擇最長匹配的版本。 – 2011-06-09 18:00:22