ホームページ > データベース > mysql チュートリアル > SQL Server で英語以外の文字や空白文字のバリエーションを処理しながら、すべての大文字テキストを適切な大文字に変換するにはどうすればよいですか?

SQL Server で英語以外の文字や空白文字のバリエーションを処理しながら、すべての大文字テキストを適切な大文字に変換するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-10 07:46:46
オリジナル
556 人が閲覧しました

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

適切な大文字小文字変換のための高度な 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
    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;</code>
ログイン後にコピー

使用例:

<code class="language-sql">SELECT dbo.ToProperCase('ALL UPPER CASE and    SOME lower ÄÄ ÖÖ ÜÜ ÉÉ ØØ ĈĈ ÆÆ');</code>
ログイン後にコピー

出力例:

すべて大文字と一部の小文字 Ää Öö Üü Éé Øø Cc Ææ

以上がSQL Server で英語以外の文字や空白文字のバリエーションを処理しながら、すべての大文字テキストを適切な大文字に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート