1

データベース A とデータベース B の 2 つのデータベースがあります。

データベース A には、データベース B のテーブルに配置する必要があるデータが含まれています。ただし、その前に、そのデータの一部を次の方法で「クリーンアップ」する必要があります。

データベース B に配置されるデータを含むデータベース A のテーブルには、「Desc」というフィールドがあります。ときどき、システムのユーザーは都市名を「説明」フィールドに入力するデータとともに入力します。たとえば、ユーザーは「家具を新しいキュービクルに移動します。ニューヨーク。電気を追加します。」

そのデータをデータベース B にインポートする前に、そのデータから「ニューヨーク」という単語を削除して、「家具を新しいキュービクルに移動します。電気を追加します。」ただし、これは重要なことですが、データベース A の元のデータはそのままにしておく必要があります。つまり、データベース A のデータは「家具を新しいキュービクルに移動します。ニューヨーク。電気を追加する」と入力すると、データベース B のデータは「家具を新しいキュービクルに移動します。電気を追加してください。」</p>

データベース B には、データベース B に配置する前に、データベース A の「Desc」フィールド データから削除する必要がある都市名のリストを含むテーブルが含まれています。

データベース A からデータを取得し、データベース B の Cities テーブルを反復処理するストアド プロシージャまたは関数を作成するにはどうすればよいですかそのフィールドで、データベース B に適切なテーブルを設定するために使用できるレコードセットを作成しますか?

私はいくつかのことを試しましたが、まだそれをクラックしていません。それでも、これはおそらくかなり簡単だと確信しています。どんな助けでも大歓迎です!

ありがとう。

編集:

この問題を解決しようとした最新のことは次のとおりです。

DECLARE @cityName VarChar(50)

While (Select COUNT(*) From ABCScanSQL.dbo.tblDiscardCitiesList) > 0

Begin

Select @cityName = ABCScanSQL.dbo.tblDiscardCitiesList.CityName FROM ABCScanSQL.dbo.tblDiscardCitiesList

SELECT JOB_NO, LTRIM(RTRIM(SUBSTRING(JOB_NO, (LEN(job_no) -2), 5))) AS  LOCATION
      ,JOB_DESC, [Date_End] , REPLACE(Job_Desc,@cityName,' ') AS NoCity
       FROM fmcs_tables.dbo.Jobt WHERE Job_No like '%loc%'
End

「Job_Desc」は、都市名を削除する必要があるフィールドです。

4

1 に答える 1

0

これはデータ品質の問題です。データベース A の [説明] のコピーをいつでも作成して、[cleaned_desc] と呼ぶことができます。

簡単な解決策の 1 つは、次のことを行う関数を作成することです。

1 - [tbl_remove_these_words] からデータを読み取ります。これらは削除したいフレーズです。

2 - 入力 @var_description をテーブル内の行と比較します。

3 - 一致すると、空の文字列に置き換えます。

このソリューションは、管理および更新するクレンジング テーブルに依存します。

[fn_remove_these_words] の呼び出しで [description] からの入力を使用する更新クエリを実行し、[cleaned_desc] を出力に設定します。

もう 1 つの解決策は、SSIS 用の Melisa Data (DQ) 製品や SQL サーバー スタックのデータ品質サービスなどの製品を調べて、問題を解決するためのアプリケーション フレームワークを提供することです。

于 2013-09-30T18:54:08.370 に答える