I am stuck trying to capitalise the first character of the first name and surname. I have formatted the names a lot already but i am stuck as the how to change the first letter of the surname when the length for names is always different.
CREATE TABLE:
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
CURRENT RESULT:
| | |
|-------------|-------------|
| fred smith | Fred.smith |
| Fred Smith | Fred smith |
| David lee | David lee |
| andrew opal | Andrew opal |
But i am looking for:
| |
|-------------|
| Fred Smith |
| Fred Smith |
| David See |
| Andrew Opal |
Can anyone help me further? Thanks
SQL Fiddle - http://sqlfiddle.com/#!18/eb0f4/1