看一看使用
SUBSTRING_INDEX(str,delim,count)
RIGHT(str,len)
而且
LEFT(str,len)
CONCAT(str1,str2,...)
另外,爲什麼都存儲在單個列這些領域擺在首位?如果將它們存儲在正確的Fields FirName中,並將單獨的LastName字段存儲起來,會不會更容易?
林更多的是SQL Server的一個位,但你可以嘗試像
SELECT CONCAT(RIGHT(FirstNameLastName,LEN(FirstNameLastName) - SUBSTRING_INDEX(FirstNameLastName, ' ', 1)),
', ',
LEFT(FirstNameLastName,SUBSTRING_INDEX(FirstNameLastName, ' ', 1) - 1)
)
FROM YourTable
編輯:
SQL服務器會看起來像(利息的緣故)
DECLARE @Table TABLE(
FirstNameLastName VARCHAR(100)
)
INSERT INTO @Table SELECT 'Foo Bar'
SELECT RIGHT(FirstNameLastName,LEN(FirstNameLastName) - PATINDEX('% %', FirstNameLastName)) + ', ' + LEFT(FirstNameLastName,PATINDEX('% %', FirstNameLastName) - 1)
FROM @Table
建議您不要將全名存儲在一列中。無論您使用姓氏還是姓氏,名字,這都是不好的做法。 實際上解析這些並不容易,因爲名稱中有空格,有時逗號不是拼寫首字母和姓氏的字母。該計劃如何知道如何扭轉Linda Sue De La Rosa或Smith,MD,John A.或Miller,Steve,III。以這種方式存儲的數據不可避免地會變得雜亂無章。另外,它很難查詢。始終將名字中間名姓和後綴分爲特殊字段。 – HLGEM 2010-04-16 17:42:17