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

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

Patricia Arquette
發布: 2025-01-10 07:52:45
原創
835 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板