2013-01-11 25 views
0

可能重複:
Split string in SQLSQL - 返回場的一部分

我有一個叫中具有以下值的數據基礎LastName柱:

Johnson (Ext. 12345) 

我只想返回沒有擴展名的姓。

任何想法在T-SQL中使用什麼命令? (2008年SSRS版)

感謝

+0

是否姓氏總是有一個空間開括號之前? – Dibstar

+0

是的,它始終有一個空間 – user1860212

回答

2

試試這個,

SELECT RTRIM(SUBSTRING(LastName, 1, CHARINDEX('(', LAstName) - 1)) LastName 
FROM table1 
1

即可;

left(fld, charindex(' ', fld + ' ', 1) - 1) 
0

首先,請允許我說,在一個字段這樣的複合值是針對正常化,對於完整性目前各種問題,數據的複製等,也簡單的查詢,您要執行中所存在的問題。

如果你可以,你應該拆分姓氏和分機在兩個不同的列。

答案給你確認問題this

+0

是的,但是不同文化的命名規則不盡相同。有些人有四個,五個或六個以上的名字:多少列就足夠了? – APC

+0

以及您不知道要關聯的列數的情況下,您可以採取不同的方法,您可以將這些值保留爲不同表的行,並通過外鍵將它們關聯起來,其中的一行主表可以關聯到輔助表上的許多行。但這只是一種方法,取決於域可以有多種解決方案。 – B11