Mysql SQL server字符串正则表达式

Mysql SQL server字符串正则表达式,mysql,sql,regex,Mysql,Sql,Regex,在SQL中执行基本正则表达式函数时遇到问题。理想情况下,我希望以我现有的专栏为例,格式如下: "Last Name, First Middle Names" 并将其解析为两列:姓氏和其他所有内容 这应该是一个相对简单的手术。任何建议或帮助都将不胜感激,提前谢谢。试试这样的方法 SELECT [Last Name] = LEFT(your_col, Charindex(',', your_col) - 1), [everything else] = Substring(your_c

在SQL中执行基本正则表达式函数时遇到问题。理想情况下,我希望以我现有的专栏为例,格式如下:

"Last Name, First Middle Names"
并将其解析为两列:姓氏和其他所有内容


这应该是一个相对简单的手术。任何建议或帮助都将不胜感激,提前谢谢。

试试这样的方法

SELECT [Last Name] = LEFT(your_col, Charindex(',', your_col) - 1),
       [everything else] = Substring(your_col, Charindex(',', your_col) + 1, Len(your_col))
FROM   yourtable 
注意:上述查询假设数据的格式始终如下所示


“姓氏,中间名”

一个相对简单的操作应该是什么
。。。谁说这很简单?您可能无法区分名字和中间名组件。是否可以包含示例记录?尝试包含一些棘手的异常值。正如@TimBiegeleisen指出的那样;这可能是一项非常困难的任务。顺便说一句,SQL Server不支持正则表达式,只支持基本的
,如
CHARINDEX
。这假设名字和中间名可以很好地分开,但情况可能并非如此。@TimBiegeleisen-在问题中没有提到将名字和中间名分开。。我们可以根据我不能假设的要求写答案;)考虑到这些假设,我相信你的提问是正确的。这里有一个upvot,您可能需要添加一些
大小写来检查是否有逗号。在现实生活中可能没有空格、分号、破折号等等:-)@dnoeth-我真的相信OP。。该数据的格式始终是这样的
“姓氏,第一中间名”