我有一个表,其名称格式为“ Smith,Stan”,需要将其显示为“ Stan Smith”。我能够做到这一点,但似乎逗号已被抛弃,我需要摆脱它。 这是我目前拥有的:
SELECT SUBSTRING(Name, CHARINDEX(',', Name) + 1, LEN(Name)) + ' ' +
SUBSTRING(Name, 1, CHARINDEX(',', Name)) AS NewName
FROM Employees
答案 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
。如果是nchar
或nvarchar
列,请使用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