次の情報を含む2つのテーブルがあります。
製品
Name | ID |
Nameには、行の名前と言語を示す短い文字列が含まれています。
言語
Language | ID |
言語は、上記の[名前]列に含まれているものと同じ部分文字列になります。
私がやりたいのは、LanguageIDという列をProductsテーブルに追加することです。
次に、Name列から言語を示す部分文字列を抽出し、LanguagesテーブルのLanguage列と大文字と小文字を区別しない比較を行います。一致するものが見つかったら、LanguagesテーブルのID値を新しく作成したLanguageID列に挿入して、外部キー関係を作成します。
したがって、たとえば私の製品テーブルには、次のものがあります。
Name | ID
Product 1 - enGlIsh | 1
私の言語テーブルには、次のものがあります。
Language | ID
English | 77
だから私が私のProductsテーブルに入れたいのは:
Name | ID | LanguageID
Product 1 - enGlIsh | 1 | 77
サブストリングから言語を返す正規表現を作成しましたが、SQLサーバーでこのクエリをどのように使用して構造化できるかわかりません。これどうやってするの ?
これが正規表現です:
Regex regEx = new Regex(@"(.+\s*-\s*.+\s*-\s*.+)\s*-\s*(\w{1,3}\s*-\s*\w{1,3})\s*-\s*.+");
string language = regEx.Match( NAME ).Groups[2].Value.ToString();