2012-10-01 38 views
-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 

在這個例子中,我們想抽取值是李四揚E.

任何想法如何去了解它,如果它是可能的嗎?

+0

所以,你不想要「詹姆斯」的一部分?字段長度是否全部一致(即,您是否總是在名稱前面有一個10位數字)? –

+1

REGEX應該是實現這一目標的方式 –

+1

更多的數據樣本可能會讓人們更容易地爲您提供正確的正則表達式模式。 –

回答

0

假設名稱從位置11開始,並以3個數字和一個斜線結束,以下內容應該爲您做。

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

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

+0

謝謝@Spevy。這工作 –