我试图将名字和姓氏的第一个字符大写。我已经格式化了很多名字,但是当名字的长度总是不同时,我被困在如何更改姓氏的第一个字母。
创建表:
CREATE TABLE Table1 (
Name varchar(30)
)
INSERT INTO Table1 (Name)
VALUES ('Domain/fred.smith'),
('Fred Smith@hotmail.com'),
('DIRECTOR/David lee'),
('DIRECTOR/andrew opal');
CURRENT QUERY:
SELECT
REPLACE([Name], '.', ' '),
UPPER(LEFT([Name],1))+LOWER(SUBSTRING([Name],2,LEN([Name])))
FROM
(
SELECT
CASE WHEN Name LIKE '%@%' THEN SUBSTRING(Name ,0,CHARINDEX('@',[Name]))
WHEN Name LIKE '%DIRECTOR%' THEN RIGHT([Name],(Len([Name])-9))
ELSE RIGHT([Name],(Len([Name])-7)) END AS [Name]
FROM Table1
) S
当前结果:
| | |
|-------------|-------------|
| fred smith | Fred.smith |
| Fred Smith | Fred smith |
| David lee | David lee |
| andrew opal | Andrew opal |
但我正在寻找:
| |
|-------------|
| Fred Smith |
| Fred Smith |
| David See |
| Andrew Opal |
任何人都可以帮助我吗?感谢
SQL小提琴 - http://sqlfiddle.com/#!18/eb0f4/1