2014-10-17 87 views
0

這裏是我想在輸出的例子...從字符串刪除空格和轉換爲標題情況下

我有這個輸入 =「自動電子郵件發送

但我想這輸出 = 「AutomaticEmailSent

提前致謝!

+0

這是在C#還是SQL? – DavidG 2014-10-17 12:47:50

+0

明白了,有什麼企圖? – 2014-10-17 12:48:08

+0

你到目前爲止做了什麼?而且你想在c#或sql中完成這個任務嗎? – Paolo 2014-10-17 12:48:11

回答

0

使用TextInfo.ToTitleCase

// Defines the string with mixed casing. 
string myString = "Automatic email sent"; 

// Creates a TextInfo based on the "en-US" culture. 
TextInfo myTI = new CultureInfo("en-US",false).TextInfo; 

// Changes a string to titlecase, then replace the spaces with empty 
string outputString = myTI.ToTitleCase(myString).Replace(" ", ""); 
+1

作爲'sql'標記更新的問題,'c#'不再相關。 – 2014-10-17 12:50:29

1

this answer一個函數,它接受一個文本輸入,要對它進行適當的情況下(也稱爲首字母大寫):

create function ProperCase(@Text as varchar(8000)) 
returns varchar(8000) 
as 
begin 
    declare @Reset bit; 
    declare @Ret varchar(8000); 
    declare @i int; 
    declare @c char(1); 

    select @Reset = 1, @i=1, @Ret = ''; 

    while (@i <= len(@Text)) 
    select @c= substring(@Text,@i,1), 
       @Ret = @Ret + case when @Reset=1 then UPPER(@c) else LOWER(@c) end, 
       @Reset = case when @c like '[a-zA-Z]' then 0 else 1 end, 
       @i = @i +1 
    return @Ret 
end 

然後,您可以使用此功能結合REPLACE

SELECT REPLACE(dbo.ProperCase(column), ' ', '') 
FROM MyTable 
+0

非常感謝! – 2016-08-17 06:55:48

+0

不要忘記提供您認爲有用的答案,如果其中一個解決了您的問題,請將其標記爲答案。 – DavidG 2016-08-17 07:50:24

0

SQ L服務器

declare @value varchar(64) = rtrim(' ' + 'Automatic email sent') 
;with t(n) as (
    select n = charindex(' ', @value, 0) 
    union all 
    select n = charindex(' ', @value, n + 1) 
    from t 
    where n > 0 
) 
select @value = stuff(@value, n + 1, 1, upper(substring(@value, n + 1, 1))) from t where n > 0 
select replace(@value, ' ', '') 
+0

它適合我! – 2016-08-17 06:56:24

相關問題