首页 > 数据库 > mysql教程 > 如何在 SQL Server 中将所有大写数据转换为正确的大小写?

如何在 SQL Server 中将所有大写数据转换为正确的大小写?

Patricia Arquette
发布: 2025-01-10 07:52:45
原创
830 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板