Home >Database >Mysql Tutorial >How Can I Convert All Uppercase Data to Proper Case in SQL Server?

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

Patricia Arquette
Patricia ArquetteOriginal
2025-01-10 07:52:45827browse

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

Transforming All-Caps Data to Proper Case in SQL Server

Challenge:

You're working with a SQL Server table containing data entirely in uppercase, and you need a way to convert this to proper case (also known as title case). This article provides the solution.

Resolution:

The following SQL Server function efficiently converts uppercase words separated by whitespace into proper case:

<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>

Key Features:

  • Converts all-uppercase words separated by whitespace to proper case.
  • Preserves the case of lowercase words.
  • Supports non-English alphabets.
  • Works consistently across different SQL Server versions.
  • Easily adaptable to Unicode (NCHAR, NVARCHAR) and adjustable parameter length.
  • Allows customization of the whitespace definition.

Implementation:

To use this function, simply pass your uppercase text as an argument:

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

Output:

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

The above is the detailed content of How Can I Convert All Uppercase Data to Proper Case in SQL Server?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn