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
3 commenti:
ottimo articolo, una funzione del genere fa sempre comodo sul proprio db, strano che non l'abbiano integrata... ormai di versioni di sqlserver ne sono uscite a bizzeffe :)
grazie!
Grazie!!!! Davvero utile ;)
Posta un commento