在特定字符上将小写更改为大写 - SQL Server

时间:2018-03-14 12:16:00

标签: sql sql-server

我试图将名字和姓氏的第一个字符大写。我已经格式化了很多名字,但是当名字的长度总是不同时,我被困在如何更改姓氏的第一个字母。

创建表:

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

0 个答案:

没有答案