【发布时间】:2012-05-23 16:06:51
【问题描述】:
我有两张表,其中包含以下信息:
产品
Name | ID |
Name 包含一个短字符串,指示行的名称和语言。
语言
Language | ID |
语言将是上面名称列中包含的相同子字符串。
我想做的是在我的 Products 表中添加一个名为 LanguageID 的列。
然后,我将从 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();
【问题讨论】:
标签: sql-server regex database sql-server-2008 stored-procedures