-2

我们有一个表,其中只有一个名为 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。

如果可能的话,有什么想法吗?

4

1 回答 1

0

假设名称从位置 11 开始,并以 3 个数字和一个斜杠结尾,以下应该为您完成。

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

PATINDEX 基于通配符模式返回位置。

于 2012-10-01T02:13:25.240 回答