|
ducletan
Starting Member
25 Posts |
Posted - 2011-06-06 : 22:41:05
|
| I want:dbo.bodau('Lê T?n') -> Le Tandbo.bodau('Ð?c') -> Ducdbo.bodau('Hoàng')-> HoangCREATE FUNCTION dbo.bodau (@sstring nvarchar(max))RETURNS varchar(max)ASBEGINif len(@sstring)=0 return''declare @str As table ([vn] nvarchar(max),[vnU] nvarchar(max),[vn1] char(1))insert into @str ([vn],[VNU],[vn1]) values ('áà?ã?a?????â?????','ÁÀ?Ã?A?????Â?????','a')insert into @str ([vn],[VNU],[vn1]) values ('éè???ê?????','ÉÈ???Ê?????','e')insert into @str ([vn],[VNU],[vn1]) values ('íì?i?','ÍÌ?I?','i')insert into @str ([vn],[VNU],[vn1]) values ('ý????','Ý????','y')insert into @str ([vn],[VNU],[vn1]) values ('óò?õ?ô?????o?????','ÓÒ?Õ?Ô?????O?????','o')insert into @str ([vn],[VNU],[vn1]) values ('úù?u?u?????','ÚÙ?U?U?????','u')insert into @str ([vn],[VNU],[vn1]) values ('d','Ð','d')declare @sreturn varchar(max)declare @sreturn1 char(1)set @sreturn=''declare @str1 cursordeclare @ndem INTset @ndem=1while @ndem<=len(@sstring)beginselect @sreturn1=ISNULL((select case CHARINDEX(SUBSTRING(@sstring,@ndem,1),[vn]) when 0then ( case CHARINDEX(SUBSTRING(@sstring,@ndem,1),[vnU]) when 0 then null else upper([vn1]) END )else [vn1] end from @str where CHARINDEX(SUBSTRING(@sstring,@ndem,1),[vn])>0 or CHARINDEX(SUBSTRING(@sstring,@ndem,1),[vnU])>0 ),SUBSTRING(@sstring,@ndem,1))SET @sreturn=@sreturn+@sreturn1set @ndem=@ndem+1endRETURN @sreturnENDit's not workPlease help me |
|