kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dev/fnGetKopasznev.sql
2024-03-13 00:33:46 +01:00

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