知道如何从以下值中获取名称吗?

时间:2012-10-01 01:24:16

标签: sql-server sql-server-2008

我们有一个只有一个名为Names的字段名的表。

此字段名中有多行长值。

下面是每行值的长度示例。

Names

0000000024DOE JAMES JAN E102/02/1988107/11/2007 13011UNASSIGNED EMPLOYEEID 0175420670 3303302 - DY1 B100 1000 - 07/11/2007 0000028800 0000040849 0000173045 0000021600 
etc
etc

是否可以只从类似上面的列表中提取名称?

例如,我们想要提取DOE JAN而忽略剩下的值。

有时候,名字有一个中间的首字母。

示例:

0000000024DOE JAMES JAN E102/02/1988107/11/2007 13011UNASSIGNED EMPLOYEEID 0175420670 3303302 - DY1 B100 1000 - 07/11/2007 0000028800 0000040849 0000173045 0000021600 

在此示例中,我们要提取的值是Doe Jan E.

如果有可能,有什么想法可以解决吗?

1 个答案:

答案 0 :(得分:0)

假设名称从第11位开始,并以3个数字和斜线结束,以下内容应该为您完成。

SUBSTRING(Names, 11, PATINDEX('%[0-9][0-9][0-9]/%', Names) - 11) 

PATINDEX根据通配符模式返回位置。