各単語の最初の文字を大文字にする必要がありますが、SQL Serverへの送信時に既にテキストボックスに表示されている大文字を保持する必要があります。私は現在、私が呼び出すSQL関数を持っていますが、それは最初の文字を大文字にし、各単語の残りを小文字にします。私は必要なもの例えば され、現在の文字を変更せずに各単語の先頭文字を大文字にする
ジョン・スミス - ジョン・スミス
ABCは限ら - ABC限定
は、私が現在持っているSQL関数です。
ALTER FUNCTION [dbo].[CAP_FIRST] (@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
の可能性のある重複した[SQL Server内の文字列の各単語の最初の文字を大文字にするための最良の方法は何ですか]( https://stackoverflow.com/questions/55054/what-s-the-best-way-to-capitalise-the-first-letter-of-each-word-in-a-string-in-s) –
なぜあなたはクライアントの代わりにデータベースでこれをやろうとしていますか?すべての言語およびレポートツールには、大文字小文字を簡単に実行できる機能があります。 SQLは*ではありません。これは文字列操作言語ではありません –
これはアプリケーションレイヤーで行うほうがはるかに簡単です – HoneyBadger