расширенная функция SQL Server для правильного преобразования случая
]эта статья подробно описывает надежную функцию SQL Server, предназначенную для преобразования прописного текста в правильный случай при обращении к сложностям, таким как неанглийские символы и различные пробелы. Функция предлагает несколько ключевых преимуществ:
реализация функции:
создать функцию topropercase (@string varchar (255)) возвращает varchar (255) КАК НАЧИНАТЬ Объявить @i int; - Индекс Объявить @l int; - Длина ввода Объявить @c nchar (1); - текущий персонаж Объявить @f int; - Флаг первой буквы (1/0) Объявить @o varchar (255); - Вывод строка Объявить @w varchar (10); - Материалы Установить @W = '[' char (13) char (10) char (9) char (160) ''] '; Установить @i = 1; Set @l = len (@String); Установить @f = 1; SET @O = ''; Пока @i 0 НАЧИНАТЬ Установить @f = 1; SET @O = @O @C; КОНЕЦ ЕЩЕ НАЧИНАТЬ Если @f = 1 НАЧИНАТЬ SET @O = @O UPPER (@C); Установить @f = 0; КОНЕЦ ЕЩЕ SET @O = @O Lower (@C); КОНЕЦ Установить @i = @i 1; КОНЕЦ Вернуть @o; КОНЕЦ;CREATE FUNCTION ToProperCase(@string VARCHAR(255)) RETURNS VARCHAR(255)
AS
BEGIN
DECLARE @i INT; -- Index
DECLARE @l INT; -- Input Length
DECLARE @c NCHAR(1); -- Current Character
DECLARE @f INT; -- First Letter Flag (1/0)
DECLARE @o VARCHAR(255); -- Output String
DECLARE @w VARCHAR(10); -- Whitespace Characters
SET @w = '[' CHAR(13) CHAR(10) CHAR(9) CHAR(160) ' ' ']';
SET @i = 1;
SET @l = LEN(@string);
SET @f = 1;
SET @o = '';
WHILE @i 0
BEGIN
SET @f = 1;
SET @o = @o @c;
END
ELSE
BEGIN
IF @f = 1
BEGIN
SET @o = @o UPPER(@c);
SET @f = 0;
END
ELSE
SET @o = @o LOWER(@c);
END
SET @i = @i 1;
END
RETURN @o;
END;
Пример использования:
SELECT dbo.ToProperCase('ALL UPPER CASE and SOME lower ÄÄ ÖÖ ÜÜ ÉÉ ØØ ĈĈ ÆÆ');
] все верхние чехлы и некоторые нижние ää ö üü üü éé øø cc ææ
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3