2014-04-01 65 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。 所以你用一个空格字符替换逗号