Maison > base de données > tutoriel mysql > Comment puis-je convertir tout le texte en majuscules en casse appropriée dans SQL Server tout en gérant les caractères non anglais et les variations d'espaces ?

Comment puis-je convertir tout le texte en majuscules en casse appropriée dans SQL Server tout en gérant les caractères non anglais et les variations d'espaces ?

Susan Sarandon
Libérer: 2025-01-10 07:46:46
original
543 Les gens l'ont consulté

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 une conversion correcte de la casse

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

  • Gère les variations d'espaces : Gère correctement plusieurs espaces et divers caractères d'espacement (y compris les sauts de ligne, les tabulations et les espaces insécables).
  • Prend en charge les alphabets non anglais : Traite avec précision le texte contenant des caractères d'alphabets autres que l'anglais.
  • Conserve les mots minuscules : Préserve tous les mots minuscules existants dans la chaîne d'entrée.
  • Compatibilité des versions : Fonctionne sur différentes versions de SQL Server.
  • Espaces personnalisables : La définition des espaces est configurable, permettant une gestion personnalisée.

Implémentation des fonctions :

<code class="language-sql">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 <= @l
  BEGIN
    SET @c = SUBSTRING(@string, @i, 1);
    IF PATINDEX(@w, @c) > 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;</code>
Copier après la connexion

Exemple d'utilisation :

<code class="language-sql">SELECT dbo.ToProperCase('ALL UPPER CASE and    SOME lower ÄÄ ÖÖ ÜÜ ÉÉ ØØ ĈĈ ÆÆ');</code>
Copier après la connexion

Exemple de sortie :

Toutes les majuscules et certaines minuscules Ää Öö Üü Éé Øø Cc Ææ

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal