Maison >base de données >tutoriel mysql >Comment puis-je convertir toutes les données en majuscules en casse appropriée dans SQL Server ?

Comment puis-je convertir toutes les données en majuscules en casse appropriée dans SQL Server ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-10 07:52:45827parcourir

How Can I Convert All Uppercase Data to Proper Case in SQL Server?

Transformation des données en majuscules en casse appropriée dans SQL Server

Défi :

Vous travaillez avec une table SQL Server contenant des données entièrement en majuscules et vous avez besoin d'un moyen de les convertir en casse appropriée (également appelée casse du titre). Cet article fournit la solution.

Résolution :

La fonction SQL Server suivante convertit efficacement les mots majuscules séparés par des espaces en casse appropriée :

<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
      SET @f = 1;
    ELSE IF @f = 1
    BEGIN
      SET @o = @o + UPPER(@c);
      SET @f = 0;
    END
    ELSE
      SET @o = @o + LOWER(@c);
    SET @i = @i + 1;
  END;

  RETURN @o;
END;</code>

Caractéristiques principales :

  • Convertit les mots entièrement en majuscules séparés par des espaces en casse appropriée.
  • Préserve la casse des mots minuscules.
  • Prend en charge les alphabets non anglais.
  • Fonctionne de manière cohérente sur les différentes versions de SQL Server.
  • Facilement adaptable à Unicode (NCHAR, NVARCHAR) et longueur de paramètre réglable.
  • Permet de personnaliser la définition des espaces.

Mise en œuvre :

Pour utiliser cette fonction, passez simplement votre texte en majuscule en argument :

<code class="language-sql">SELECT dbo.ToProperCase('ALL UPPER CASE and    SOME lower ÄÄ ÖÖ ÜÜ ÉÉ ØØ ĈĈ ÆÆ') AS ProperCaseText;</code>

Sortie :

<code>ProperCaseText
-----------------------------------------------------------------
All Upper Case and      Some lower Ää Öö Üü Éé Øø Cc Ææ</code>

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!

Déclaration:
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