我正在使用 SQL Server 2008。
我的桌子是:
地点
------------------------
Id | LocationName
------------------------
1 | Bodakdev
2 | Thaltej Road
3 | Andheri East
4 | Noida Sector 2
公司
--------------------------------------------------------------------------
CId | Address | LocationId
--------------------------------------------------------------------------
11 | 301, GNFC Infotower, Bodakdev, | NULL
12 | 307/308,Arundeep Complex | NULL
13 | 7 Krishana Dyeing Compund, Nagardas rd., Andheri | NULL
14 | B-23 ,Ground Floor,Sector 2 | NULL
--------------------------------------------------------------------------
目前LocationId
在Company
表中为空。如果Address
包含任何位置名称,则更新LocationId
.
例如,CID - 11 的地址包含Bodakdev
然后更新 LocationId 1,第二个示例,CID - 13 的地址包含Andheri
单词然后更新 LocationId 3。
所需输出:
CId | Address | LocationId
--------------------------------------------------------------------------
11 | 301, GNFC Infotower, Bodakdev, | 1
12 | 307/308,Arundeep Complex | NULL
13 | 7 Krishana Dyeing Compund, Nagardas rd., Andheri | 3
14 | B-23 ,Ground Floor,Sector 2 | 4
--------------------------------------------------------------------------
我尝试使用以下查询
SELECT
(LEN(Address) - LEN(REPLACE(Address, LocationName, '')) ) / LEN(LocationName)
如果Address
包含位置名称,则返回出现次数,否则返回 0。
但它不会给出正确的输出。我怎样才能做到这一点?谢谢。任何建议将不胜感激。