Qualche tempo fa ho pubblicato un post (QUI) dove spiegavo come fare il capitalize (ovvero mettere la prima lettera maiuscola e tutto il resto in minuscolo) di una stringa in SQL Server.
Ora voglio integrare quel post mostrando come fare il capitalize di ogni parola della stringa.
Questa attività è un po' più complessa, è infatti necessario creare una funzione personalizzata che farà il lavoro per noi. Ecco come:
CREATE FUNCTION dbo.CapitalizeEveryWord(@input NVARCHAR(4000)) RETURNS NVARCHAR(4000)
AS
BEGIN
DECLARE @position INT
WHILE IsNull(@position,Len(@input)) > 1
SELECT @input = Stuff(@input,IsNull(@position,1),1,upper(substring(@input,IsNull(@position,1),1))),
@position = charindex(' ',@input,IsNull(@position,1)) + 1
RETURN (@input)
END
Fatto questo, basta invocare la funzione ed il gioco è fatto:
SELECT dbo.CapitalizeEveryWord (Lower(NomeColonna)) FROM NomeTabella