2014-04-01 86 views
0

在SQL +中,我應該創建一個包含一列的表:名稱。在那一欄裏只有一個名字,'Doe,John'。我應該寫一個選擇語句來顯示數據爲'John Doe';我看了,但我似乎無法找到任何方法來做到這一點。有任何想法嗎?列出逗號分隔的名稱,不帶逗號

+0

提示,更換() –

+2

REPLACE()是你需要的功能,而是一列應該持有一個數據,它總是更容易串聯比分割數據:這裏使用一個substringcharindex的它分開。考慮將列分成名字和姓氏 –

+1

您正在使用哪種RDBMS?如果您需要重新排列數據(姓氏,名字爲姓氏姓氏),不確定'replace'將如何幫助您。我回應其他人 - 這應該存儲在兩個單獨的列中。 – sgeddes

回答

2

雖然你應該將它存儲在2個獨立的列(名字和姓氏)中,但我們假設這不是一個選項。答案將是RDBMS特定的。

對於MySQL,substring_index效果很好:

select substring_index(name,',',1) lastname, 
    substring_index(name,',',-1) firstname 
from yourtable 

Some Fiddle

SQL Server,您有幾種選擇。

select substring(name,1,charindex(',',name)-1) lastname, 
    ltrim(substring(name,charindex(',',name)+1, len(name))) firstname 
from yourtable 

Some More Fiddle

2
SELECT REPLACE(name,',',' '); 

其中name是包含數據的字段名稱Doe,John。 所以你用一個空格字符替換逗號