我想用SQL查詢來更改大小寫小寫改爲上(職稱)的情況下使用SQL查詢
例如,如果文字是:My nAme is iShAn halaRNkar
(文字混亂即它可以在senetence任何地方包括小寫或大寫)
不是我所要的輸出是:My Name Is Ishan Halarnkar
我還沒有在SQL查詢的工作很多。請幫助。
我想用SQL查詢來更改大小寫小寫改爲上(職稱)的情況下使用SQL查詢
例如,如果文字是:My nAme is iShAn halaRNkar
(文字混亂即它可以在senetence任何地方包括小寫或大寫)
不是我所要的輸出是:My Name Is Ishan Halarnkar
我還沒有在SQL查詢的工作很多。請幫助。
有在爲你做任何數據庫無此功能。你必須寫一個函數來實際檢查句子中的每個單詞。請查看以下解決方案:
MySQL的:
DELIMITER //
CREATE FUNCTION CAP_FIRST (input VARCHAR(255))
RETURNS VARCHAR(255)
DETERMINISTIC
BEGIN
DECLARE len INT;
DECLARE i INT;
SET len = CHAR_LENGTH(input);
SET input = LOWER(input);
SET i = 0;
WHILE (i < len) DO
IF (MID(input,i,1) = ' ' OR i = 0) THEN
IF (i < len) THEN
SET input = CONCAT(
LEFT(input,i),
UPPER(MID(input,i + 1,1)),
RIGHT(input,len - i - 1)
);
END IF;
END IF;
SET i = i + 1;
END WHILE;
RETURN input;
END//
DELIMITER ;
例子:
SELECT CAP_FIRST('this is exACtly tHe same!')
輸出:
This Is Exactly The Same!
版權所有:
http://joezack.com/2008/10/20/mysql-capitalize-function/
希望這有助於!
該SQL應該可以工作。
SELECT UPPER(LEFT(<ColumnName>, 1)) + LOWER(RIGHT(<ColumnName>,LEN(<ColumnName>)-1)) FROM {YourTableName}
它只用一個句子的第一個字母而不是每個單詞的第一個字母 – Ishan 2013-05-09 09:17:21
首先,你需要創建功能
CREATE FUNCTION ProperCase(@OriginalText VARCHAR(8000))
RETURNS VARCHAR(8000)
BEGIN
DECLARE @CleanedText VARCHAR(8000)
;with
a1 as (select 1 as N union all select 1 union all
select 1 union all select 1 union all
select 1 union all select 1 union all
select 1 union all select 1 union all
select 1 union all select 1),
a2 as (select 1 as N from a1 as a cross join a1 as b),
a3 as (select 1 as N from a2 as a cross join a2 as b),
a4 as (select 1 as N from a3 as a cross join a2 as b),
Tally as (select top (len(@OriginalText)) row_number() over (order by N) as N from a4)
SELECT @CleanedText = ISNULL(@CleanedText,'') +
--first char is always capitalized?
CASE WHEN Tally.N = 1 THEN UPPER(SUBSTRING(@OriginalText,Tally.N,1))
WHEN SUBSTRING(@OriginalText,Tally.N -1,1) = ' ' THEN UPPER(SUBSTRING(@OriginalText,Tally.N,1))
ELSE LOWER(SUBSTRING(@OriginalText,Tally.N,1))
END
FROM Tally WHERE Tally.N
現在你只需要使用此功能
select dbo.ProperCase('My nAme is iShAn halaRNkar')
這裏是另一個微軟SQL函數:
CREATE FUNCTION PROPERCASE(@TEXT AS VARCHAR(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @RESET BIT;
DECLARE @STR VARCHAR(MAX);
DECLARE @I INT;
DECLARE @C CHAR(1);
SELECT @RESET = 1, @I=1, @STR = '';
WHILE (@I <= LEN(@TEXT))
SELECT @C= SUBSTRING(@TEXT,@I,1),
@STR = @STR + 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 @STR
END
這將是對你有幫助。 http://stackoverflow.com/questions/4263272/capitalize-first-letter-mysql – cha 2013-05-09 09:10:20
哪個RDBMS? SQL Server,MySQL或??你有嘗試過什麼嗎? – hims056 2013-05-09 09:23:59