2016-10-27 2 views
-1

У меня есть очень большая таблица слов, которые хранятся в столбце под названием «Английский».Как изменить первый символ слова на нижний регистр, если он находится между A и Z?

Есть ли способ, чтобы я мог обновлять строки в этой таблице, чтобы любое слово, начинающееся с символа верхнего регистра A-Z, было изменено на один и тот же символ, но в нижнем регистре.

+0

первую только букву? или все символы, которые нужно переместить в нижний регистр? – Zeina

+1

Возможный дубликат [SQL: использовать только первую букву] (http://stackoverflow.com/questions/15290754/sql-capitalize-first-letter-only) –

+0

Прочитайте [ask] и поделитесь тем, что вы пробовали. – CodeCaster

ответ

2

Пожалуйста, попробуйте следовать.

UPDATE StudentMasters 
SET  StdName = LOWER(LEFT(StdName,1)) + SUBSTRING(StdName,2,LEN(StdName)) 
WHERE LEFT(StdName,1) = UPPER(LEFT(StdName,1)) COLLATE Latin1_General_CS_AI 

В этом случае у нас есть имя таблицы «StudentMasters» и имя поля «StdName». над запросом будет обновлять значение поля в соответствии с вашим ожиданием.

0

Для создания первой буквы столбца в нижнем регистре используйте приведенный ниже сценарий.

UPDATE y 
SET YourColumn=LOWER(LEFT(YourColumn,1))+SUBSTRING(YourColumn,2,LEN(YourColumn)) 
FROM YourTable y 
+1

Должно быть условие WHERE, поскольку он хочет слова, которое начинается только с символа верхнего регистра. – Husen

1

попробовать это с другими образцами данных,

declare @t table(col1 varchar(50)) 
insert into @t values ('DF454fdgd'),('45345dfgfgdf') 

SELECT * 
    ,replace(col1, SUBSTRING(col1, 1, 2) 
, LOWER(SUBSTRING(col1, 1, 2))) newCol 
FROM @t 
WHERE col1 LIKE '[A-Z]%' 
Смежные вопросы