"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo convertir todo el texto en mayúsculas en caso apropiado en SQL Server mientras maneja los cambios de carácter y espacio no inglés?

¿Cómo convertir todo el texto en mayúsculas en caso apropiado en SQL Server mientras maneja los cambios de carácter y espacio no inglés?

Publicado el 2025-04-14
Navegar:952

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

Función de servidor SQL avanzado para la conversión de casos adecuada

Este artículo detalla una función sólida del servidor SQL diseñada para convertir el texto en mayúsculas en el caso adecuado al tiempo que aborda las complejidades, como los caracteres no ingleses y el espacio en blanco variable. La función ofrece varias ventajas clave:

  • maneja las variaciones Whitespace: maneja correctamente múltiples espacios y varios caracteres de espacio en blanco (incluidas las rupturas de línea, las pestañas y los espacios no rompientes).
  • admite alfabetos no ingleses: procesa con precisión el texto que contiene caracteres de alfabetos más allá del inglés.
  • mantiene palabras minúsculas: preserva cualquier palabra minúscula existente dentro de la cadena de entrada.
  • compatibilidad de la versión: en diferentes versiones del servidor SQL.
  • Customizable Whitespace: La definición de Whitespace es configurable, permitiendo un manejo a medida.

implementación de funciones:

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;

Ejemplo de uso:

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

Ejemplo de salida:

todos los casos superiores y algunos más bajos ää Öö üü Éé Øø cc Ææ

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3