Transformarea unui text neuniform in text uniform scris

Rezolvare problema (Fix IT)

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

Tip solutie

Permanent

Voteaza

(17 din 39 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?