54 lines
1.5 KiB
Transact-SQL
54 lines
1.5 KiB
Transact-SQL
DROP FUNCTION IF EXISTS [dev].[fnGetKopasznev]
|
|
GO
|
|
|
|
CREATE FUNCTION [dev].[fnGetKopasznev](@input_name nvarchar(300))
|
|
RETURNS nvarchar(300)
|
|
AS BEGIN
|
|
declare @nev nvarchar(300),
|
|
@s1 nvarchar(300),
|
|
@i int,
|
|
@b char(1),
|
|
@c char(1)
|
|
SET @nev = LOWER(@input_name collate Latin1_General_CI_AI)
|
|
SET @nev = REPLACE(@nev,'tsch','cscs')
|
|
SET @nev = REPLACE(@nev,'sch','s')
|
|
SET @nev = REPLACE(@nev,'ts','cs')
|
|
SET @nev = REPLACE(@nev,'ch','cs')
|
|
SET @nev = REPLACE(@nev,'th','t')
|
|
SET @nev = REPLACE(@nev,'ly','j')
|
|
SET @nev = REPLACE(@nev,'cz','c')
|
|
SET @nev = REPLACE(@nev,'dr.','')
|
|
SET @nev = REPLACE(@nev,'dr .','')
|
|
SET @nev = REPLACE(@nev,'_','')
|
|
SET @nev = REPLACE(@nev,'á','a')
|
|
SET @nev = REPLACE(@nev,'é','e')
|
|
SET @nev = REPLACE(@nev,'í','i')
|
|
SET @nev = REPLACE(@nev,'ó','o')
|
|
SET @nev = REPLACE(@nev,'ö','o')
|
|
SET @nev = REPLACE(@nev,'ő','o')
|
|
SET @nev = REPLACE(@nev,'ú','u')
|
|
SET @nev = REPLACE(@nev,'ü','u')
|
|
SET @nev = REPLACE(@nev,'ű','u')
|
|
|
|
SET @i = 0
|
|
SET @s1 = ''
|
|
SET @b = ''
|
|
SET @c = ' '
|
|
WHILE @i < LEN(@nev) BEGIN
|
|
SET @i = @i + 1
|
|
SET @b = SUBSTRING(@nev, @i, 1)
|
|
IF @b LIKE '[abcdefghijklmnopqrstuvwxyz]' BEGIN
|
|
IF ( @b <> @c ) AND ( ( @b <> 'h') OR ( ( @b = 'h' ) AND (@c IN ('a','e','i','o','u',' ') ) ) ) BEGIN
|
|
IF ( @b <> 'y') OR ( ( @b = 'y' ) AND ( @c IN ('g', 'n', 't') ) ) BEGIN
|
|
SET @s1 += @b
|
|
END
|
|
ELSE BEGIN
|
|
SET @s1 += 'i'
|
|
END
|
|
END
|
|
END
|
|
SET @c = @b
|
|
END
|
|
RETURN @s1
|
|
END
|
|
GO
|