0

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
 --------------------------------------------------------------------------

現在LocationIdCompanyテーブルには null があります。場所の名前が含まれている場合Addressは、更新しLocationIdます。

たとえば、CID の住所 - 11 にはBodakdevLocationId 1 が含まれ、2 番目の例では、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 を返します。

しかし、正しい出力は得られません。これどうやってするの?ありがとう。任意の提案をいただければ幸いです。

4

1 に答える 1