Sql server sql字符串提取
我在SQLServer2008中有一个列,它是varchar(255)。 该专栏充满了“测量”,大约有15000条记录。 由于该列为字符串类型,并由人工输入,因此变得混乱 e、 gSql server sql字符串提取,sql-server,regex,string,varchar,Sql Server,Regex,String,Varchar,我在SQLServer2008中有一个列,它是varchar(255)。 该专栏充满了“测量”,大约有15000条记录。 由于该列为字符串类型,并由人工输入,因此变得混乱 e、 g 100x200cm 200x400mm 3“乘9” 30 x 20 12厘米长 基本上,我需要将所有测量值(我可以)提取到可用的维度中,并将每个单元存储到一个新列中(高度/宽度/深度) 有人能建议最好的方法吗 我在研究正则表达式,但不确定前进的最佳途径,我建议使用非常严格的解析器,每当遇到无法显式处理的问题时,就
- 100x200cm
- 200x400mm
- 3“乘9”
- 30 x 20
- 12厘米长
我在研究正则表达式,但不确定前进的最佳途径,我建议使用非常严格的解析器,每当遇到无法显式处理的问题时,就会抛出异常。这样你就可以避免意外 首先,您应该为此使用脚本语言 获取记录并对其进行迭代,对于尝试解析的每条记录:
-如果匹配,则将^([1-9][0-9]*)x([1-9][0-9]*)([a-z]+)$
与有效单位列表匹配,例如“cm”、“mm”、“m”等$3
-如果匹配,比较匹配的单位^([1-9][0-9]*)([^]+)by([1-9][0-9]*)(.+)$
和$2
。再次将它们与有效单位列表进行匹配,如果成功,但它们不相同,则将一个转换为另一个$4
您不断为每个抛出异常的项添加严格的检查。这样,表达式列表会随着您处理的情况而扩展。我建议使用非常严格的解析器,每当遇到无法显式处理的问题时,就会抛出异常。这样你就可以避免意外 首先,您应该为此使用脚本语言 获取记录并对其进行迭代,对于尝试解析的每条记录:
-如果匹配,则将^([1-9][0-9]*)x([1-9][0-9]*)([a-z]+)$
与有效单位列表匹配,例如“cm”、“mm”、“m”等$3
-如果匹配,比较匹配的单位^([1-9][0-9]*)([^]+)by([1-9][0-9]*)(.+)$
和$2
。再次将它们与有效单位列表进行匹配,如果成功,但它们不相同,则将一个转换为另一个$4
您不断为每个抛出异常的项添加严格的检查。这样,您的表达式列表将随着您处理的情况而扩展。祝您好运。无论如何,我不会在SQL中这样做:太多的组合无法解析。祝你好运。无论如何,我不会在SQL中这样做:太多的组合无法解析。注意:SQL Server不支持t-SQL中的正则表达式,这就是我注意到使用脚本语言的原因。很抱歉,这是为了OP,不是为了您。甲骨文有正则表达式,有些人搞混了…:-)注意:SQL Server不支持t-SQL中的正则表达式,这就是我注意到使用脚本语言的原因。很抱歉,这是为了OP,不是为了您。甲骨文有正则表达式,有些人搞混了…:-)