Iniziali maiuscole

Ecco come trasformare una frase con “Iniziali maiuscole” in SQL Server (T-SQL):

Per prima cosa è opportuno creare una funziona che fa allo scopo; per fare questo usiamo lo stack XML:

CREATE FUNCTION CapitalLetter
(
@TheSentence NVARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @Result NVARCHAR(MAX); SET @Result = stuff(( select ' '+upper(left(T3.V, 1))+lower(stuff(T3.V, 1, 1, '')) from (select cast(replace((select @TheSentence as '*' for xml path('')), ' ', '<X/>') as xml).query('.')) as T1(X) cross apply T1.X.nodes('text()') as T2(X) cross apply (select T2.X.value('.', 'varchar(MAX)')) as T3(V) for xml path(''), type ).value('text()[1]', 'varchar(MAX)'), 1, 1, ''); RETURN @Result;
END
GO

Questa funzione va poi chiamata così:

SELECT dbo.CapitalLetter('QUESTA FRASE DOVREBBE ESSERE CONVERTITA')

Per dare come risultato un bel “Questa Frase Dovrebbe Essere Covertita”