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

各単語の最初の文字を大文字にする組み込み関数

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE FUNCTION [dbo].[InitCap] ( @InputString varchar(4000) ) 
    RETURNS VARCHAR(4000)
    AS
    BEGIN
    
    DECLARE @Index          INT
    DECLARE @Char           CHAR(1)
    DECLARE @PrevChar       CHAR(1)
    DECLARE @OutputString   VARCHAR(4000)
    
    SET @OutputString = LOWER(@InputString)
    SET @Index = 1
    
    WHILE @Index <= LEN(@InputString)
    BEGIN
        SET @Char     = SUBSTRING(@InputString, @Index, 1)
        SET @PrevChar = CASE WHEN @Index = 1 THEN ' '
                             ELSE SUBSTRING(@InputString, @Index - 1, 1)
                        END
    
        IF @PrevChar IN (' ', ';', ':', '!', '?', ',', '.', '_', '-', '/', '&', '''', '(')
            SET @OutputString = STUFF(@OutputString, @Index, 1, UPPER(@Char))
    
        SET @Index = @Index + 1
    END
    
    RETURN @OutputString
    
    END
    
    
    
    Declare @str nvarchar(100)
    SET @str = 'my string to convert'
    SELECT @str = [dbo].[InitCap](@str)
    SELECT @str 
    


    1. SQL Serverのスパース列:時間とスペースへの影響

    2. oracletmstmpフィールドからミリ秒を削除する

    3. dbms_xplan.displayと混同されています

    4. 存在しない日付のゼロを返しますMYSQLGROUPBY