Hej, Så här: Jag har för och efternamn i samma fält och har försökt med hjälp av din kod att få till så att det i början av namnet får stort bokstav, men har nu kört fast. Ok, trodde namnet var "atomiskt". Så här ser det ut: Ledsen att det tagit så lång tid att svara, men jag fick fullt upp på jobbet.mssql Första bokstaven stor i Namnet?
Jag använder MSSQL Server Management Studio 2000.
Måste fråga om det är någon som kan hjälpa mig, hur man ändrar så att man får första bokstaven stor i t.ex. ett namn?
Tack på förhand.Sv: mssql Första bokstaven stor i Namnet?
<code>
SELECT (UPPER(LEFT(namn, 1)) + LOWER(RIGHT(namn, LEN(namn) - 1))) AS Namn;
</code>
Byt ut "namn" mot din kolumn/variabel.Sv:mssql Första bokstaven stor i Namnet?
Kan du möjligen hjälpa mig även med detta problem?Sv: mssql Första bokstaven stor i Namnet?
Ja ge mig några exempel på hur det ser ut.
T.ex är det alltid ett mellanslag mellan namnen?
Finns det dubbelnamn med mellanslag isf?Sv:mssql Första bokstaven stor i Namnet?
Den otter, stefan
Winkler-christensen, steen
Hansen, steen prebenSv: mssql Första bokstaven stor i Namnet?
Sedan är det inget "trivialt" problem att lösa med SQL.
Väljer man att lagra namnen "oatomärt", så blir det meckigt att manipulera datat med SQL.
Jag har uppfattat det som att du vill uppdatera namnen i din tabell.
Har byggt ett exempel nedan, som du kan klistra in i Enterprise managern, och provköra.
Verkar det vara det som du är ute efter, är det bara att anpassa till din databas.
<code>
DECLARE @names TABLE (id int IDENTITY(1,1), namn varchar(50));
DECLARE @firstname TABLE (id int, namn varchar(50));
DECLARE @lastname TABLE (id int, namn varchar(50))
INSERT INTO @names VALUES('hansen, steen preben');
INSERT INTO @names VALUES('winkler-christensen, steen');
INSERT INTO @names VALUES('den otter, stefan');
INSERT INTO @firstname SELECT id, RIGHT(namn, LEN(namn) - CHARINDEX(',', namn) - 1) FROM @names
INSERT INTO @lastname SELECT id, LEFT(namn, CHARINDEX(',', namn) - 1) FROM @names
UPDATE @firstname SET namn = (UPPER(LEFT(namn, 1)) + LOWER(RIGHT(namn, LEN(namn) - 1)));
UPDATE @firstname SET namn =
(CASE WHEN CHARINDEX(' ', namn) > 0 THEN LEFT(namn, CHARINDEX(' ', namn)) +
UPPER(SUBSTRING(namn, (CHARINDEX(' ', namn) + 1), 1)) +
LOWER(RIGHT(namn, LEN(namn) - CHARINDEX(' ', namn) - 1)) ELSE namn END);
UPDATE @lastname SET namn = (UPPER(LEFT(namn, 1)) + LOWER(RIGHT(namn, LEN(namn) - 1)));
UPDATE @lastname SET namn =
(CASE WHEN CHARINDEX(' ', namn) > 0 THEN LEFT(namn, CHARINDEX(' ', namn)) +
UPPER(SUBSTRING(namn, (CHARINDEX(' ', namn) + 1), 1)) +
LOWER(RIGHT(namn, LEN(namn) - CHARINDEX(' ', namn) - 1)) ELSE namn END);
UPDATE @lastname SET namn =
(CASE WHEN CHARINDEX('-', namn) > 0 THEN LEFT(namn, CHARINDEX('-', namn)) +
UPPER(SUBSTRING(namn, (CHARINDEX('-', namn) + 1), 1)) +
LOWER(RIGHT(namn, LEN(namn) - CHARINDEX('-', namn) - 1)) ELSE namn END);
UPDATE @names SET namn = c.namn + ', ' + b.namn
FROM @names a
INNER JOIN @firstname b ON a.id = b.id
INNER JOIN @lastname c ON a.id = c.id
SELECT * FROM @names;
</code>