"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment convertir tout le texte en majuscules en cas approprié dans SQL Server tout en gérant les changements de caractère et d'espace non anglophones?

Comment convertir tout le texte en majuscules en cas approprié dans SQL Server tout en gérant les changements de caractère et d'espace non anglophones?

Publié le 2025-04-14
Parcourir:133

How Can I Convert All Uppercase Text to Proper Case in SQL Server While Handling Non-English Characters and Whitespace Variations?

fonction SQL Server avancée pour la conversion de cas appropriée

Cet article détaille une fonction SQL Server robuste conçue pour convertir le texte en majuscule en cas approprié tout en adressant des complexités telles que des caractères non anglais et des espaces blancs variables. La fonction offre plusieurs avantages clés:

  • gère les variantes de l'espace: gère correctement plusieurs espaces et divers caractères d'espace blanc (y compris les pauses de ligne, les onglets et les espaces non révolutionnaires).
  • prend en charge les alphabets non anglais: traite avec précision le texte contenant des caractères d'alphabets au-delà de l'anglais.
  • maintient les mots minuscules: conserve tous les mots minuscules existants dans la chaîne d'entrée.
  • Compatibilité de la version: Fonctions entre différentes versions SQL Server.
  • Whitespace personnalisable: La définition de l'espace blanc est configurable, permettant une manipulation sur mesure.

implémentation de la fonction:

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;

Exemple d'utilisation:

SELECT dbo.ToProperCase('ALL UPPER CASE and    SOME lower ÄÄ ÖÖ ÜÜ ÉÉ ØØ ĈĈ ÆÆ');
Exemple de sortie:

dans toute la casse supérieure et quelques ää öö öö üüüüs Øø cc ææ

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3