首頁 >資料庫 >mysql教程 >如何在 SQL Server 中將所有大寫資料轉換為正確的大小寫?

如何在 SQL Server 中將所有大寫資料轉換為正確的大小寫?

Patricia Arquette
Patricia Arquette原創
2025-01-10 07:52:45832瀏覽

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

在 SQL Server 中將全大寫資料轉換為正確的大小寫

挑戰:

您正在使用完全包含大寫資料的 SQL Server 表,並且您需要一種方法將其轉換為正確的大小寫(也稱為標題大小寫)。 本文提供了解決方案。

解:

以下 SQL Server 函數可以有效地將由空格分隔的大寫單字轉換為正確的大小寫:

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

主要特點:

  • 將由空格分隔的全大寫單字轉換為正確的大小寫。
  • 保留小寫單字的大小寫。
  • 支援非英語字母。
  • 在不同的 SQL Server 版本中一致運作。
  • 輕鬆適配Unicode(NCHAR、NVARCHAR)且參數長度可調。
  • 允許自訂空白定義。

實作:

要使用此函數,只需將大寫文字作為參數傳遞即可:

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

輸出:

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

以上是如何在 SQL Server 中將所有大寫資料轉換為正確的大小寫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn