删除尾随逗号

时间:2020-10-11 08:14:24

标签: sql sql-server tsql replace

我有一个表,其名称格式为“ Smith,Stan”,需要将其显示为“ Stan Smith”。我能够做到这一点,但似乎逗号已被抛弃,我需要摆脱它。 这是我目前拥有的:

SELECT SUBSTRING(Name, CHARINDEX(',', Name) + 1, LEN(Name)) + ' ' +
SUBSTRING(Name, 1, CHARINDEX(',', Name)) AS NewName
FROM Employees

what I have vs. what it needs to look like

2 个答案:

答案 0 :(得分:1)

如何按以下方式使用替换

SELECT SUBSTRING(Name, CHARINDEX(',', Name) + 1, LEN(Name)) + ' ' +
REPLACE(SUBSTRING(Name, 1, CHARINDEX(',', Name)),',','') AS NewName
FROM Employees

答案 1 :(得分:0)

假设所有行都包含逗号:

SELECT LEFT(Name, CHARINDEX(',', Name)-1) + ' ' +
       RIGHT(Name, LEN(Name) - CHARINDEX(',', Name)-1) AS NewName
FROM Employees

更新

如果您的Name列中包含尾随空格,请将LEN更改为DATALENGTH。如果是ncharnvarchar列,请使用DATALENGTH但除以2:

-- if Name is char/varchar
SELECT LEFT(Name, CHARINDEX(',', Name)-1) + ' ' +
       RIGHT(Name, DATALENGTH(Name) - CHARINDEX(',', Name)-1) AS NewName
FROM Employees

-- in Name is nchar/nvarchar
SELECT LEFT(Name, CHARINDEX(',', Name)-1) + ' ' +
       RIGHT(Name, DATALENGTH(Name)/2 - CHARINDEX(',', Name)-1) AS NewName
FROM Employees