sql >> データベース >  >> RDS >> Sqlserver

SQL Server:すべての大文字を適切なケース/タイトルケースにする

    この関数:

    • 「適切なケース」は、空白で区切られたすべての「大文字」の単語です
    • 「小文字の単語」をそのままにします
    • 英語以外のアルファベットでも正しく機能します
    • 最近のSQLサーバーバージョンの優れた機能を使用しないという点で移植性があります
    • ユニコードをサポートするためにNCHARとNVARCHARを使用するように簡単に変更できます。また、適切と思われるパラメータの長さも変更できます。
    • 空白の定義を構成できます
    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 char
      DECLARE @f INT           -- first letter flag (1/0)
      DECLARE @o VARCHAR(255)  -- output string
      DECLARE @w VARCHAR(10)   -- characters considered as white space
    
      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 @f = 1 
        BEGIN
         SET @o = @o + @c
         SET @f = 0
        END
        ELSE
        BEGIN
         SET @o = @o + LOWER(@c)
        END
    
        IF @c LIKE @w SET @f = 1
    
        SET @i = @i + 1
      END
    
      RETURN @o
    END
    

    結果:

    dbo.ToProperCase('ALL UPPER CASE and    SOME lower ÄÄ ÖÖ ÜÜ ÉÉ ØØ ĈĈ ÆÆ')
    -----------------------------------------------------------------
    All Upper Case and      Some lower Ää Öö Üü Éé Øø Cc Ææ
    


    1. isqlによるSQLの実行方法の変更

    2. QUERYパケットの送信中にエラーが発生しました

    3. 1億2000万件のレコードを更新する最速の方法

    4. PythonとMySQLデータベース:実用的な紹介