Situatie
Intalnim deseori ca intr-o tabela sa gasim text, in special in campurile in care este permisa scrierea la liber, care este scris neuniform, in sensul ca ori incepe cu prima litera mica si continua cu restul mari (a fost apasat Caps-ul gresit), ori are litere mari pe la mijloc, tot din apasarea gresit a caps-ului, etc
Pentru a formata un astfel de text, am creat functia de mai jos:
Solutie
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
— =============================================
— Description: Transforma orice string intr-un nou string care este parsat ca un titlu, adica:
–‘lUcrarE de cONTroL’ devine ‘Lucrare De Control’
— select [dbo].[BD_TitleCase] (‘lUcrarE de cONTroL’)
— =============================================
CREATE FUNCTION [dbo].[BD_TitleCase](@Text as nvarchar(1000))
returns nvarchar(1000)
as
begin
declare @Reset bit;
declare @Ret nvarchar(1000);
declare @i int;
declare @c nchar(1);
select @Reset = 1, @i=1, @Ret = ”;
while (@i <= len(@Text))
select @c= substring(@Text,@i,1),
@Ret = @Ret + case when @Reset=1 then UPPER(@c) else LOWER(@c) end,
@Reset = case when @c like ‘[a-zA-Z]’ then 0 else 1 end,
@i = @i +1
return @Ret
end
Leave A Comment?