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

SQLServerで文字列内の各単語の最初の文字を大文字にする最良の方法は何ですか

    http://www.sql-server-helper.com/functions/initcap.aspxから

    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(255)
    
    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 (' ', ';', ':', '!', '?', ',', '.', '_', '-', '/', '&', '''', '(')
        BEGIN
            IF @PrevChar != '''' OR UPPER(@Char) != 'S'
                SET @OutputString = STUFF(@OutputString, @Index, 1, UPPER(@Char))
        END
    
        SET @Index = @Index + 1
    END
    
    RETURN @OutputString
    
    END
    GO
    

    ここには、より単純で小さいものがあります(ただし、行にスペースがない場合は機能しません。「無効な長さパラメーターがRIGHT関数に渡されました。」):

    http://www.devx.com/tips/Tip/17608



    1. SQL ServerでID列を更新するにはどうすればよいですか?

    2. pghoardAlternatives-ClusterControlを使用したPostgreSQLバックアップ管理

    3. int delete(String table、String whereClause、String [] whereArgs)関数のString [] whereArgsの目的は何ですか?

    4. MySQLのIFEXISTSの使用