Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Перевести в верхний регистр первую букву слова в таблице в SQL

Зося Ковалёва Ученик (189), на голосовании 3 месяца назад
Экспорт данных из разных источников показал, что некоторые имена записаны в нижнем регистре. При помощи строковых функций сформируйте новое поле newname, где первая буква имени должна быть представлена в верхнем регистре. В выборке должны присутствовать два атрибута: id, newname.
Голосование за лучший ответ
Ilham Efremov Гуру (2533) 4 месяца назад
SELECT id, CONCAT(UPPER(LEFT(name, 1, 1)), SUBSTRING(name, 2)) AS newname
FROM *имя твоей таблицы тут*;
Зося КовалёваУченик (189) 4 месяца назад
я так и написала.Но пишет, что лишняя скобка. Но я так думаю, что в функции SUBSTRING не хватает третьего аргумента, так как его стандартная форма: SUBSTRING (string, start,_position,symbol_len) и все эти аргументы обязательны.
Минирсику писику Гуру (2893) 4 месяца назад
Для решения этой задачи в SQL можно использовать функцию UPPER для преобразования первой буквы слова в верхний регистр и функцию SUBSTRING или SUBSTR для извлечения оставшейся части строки. Вот пример запроса, который создает новое поле newname, где первая буква имени в верхнем регистре:
 SELECT  
id,
CONCAT(UPPER(SUBSTRING(name, 1, 1)), LOWER(SUBSTRING(name, 2))) AS newname
FROM
your_table;
В этом запросе:

SUBSTRING(name, 1, 1) извлекает первую букву имени.

UPPER(SUBSTRING(name, 1, 1)) преобразует первую букву в верхний регистр.

SUBSTRING(name, 2) извлекает оставшуюся часть имени, начиная со второй буквы.

LOWER(SUBSTRING(name, 2)) преобразует оставшуюся часть имени в нижний регистр.

CONCAT объединяет первую букву в верхнем регистре с оставшейся частью имени в нижнем регистре.

Замените your_table на имя вашей таблицы и name на имя вашего поля, содержащего имена.
Зося КовалёваУченик (189) 4 месяца назад
Говорит, что не знает такой функции как CONCAT: "Error: no such function: CONCAT"
Минирсику писику Гуру (2893) Зося Ковалёва, It seems like you're encountering an error related to the CONCAT function in your SQL query. The CONCAT function is not available in all SQL databases. For example, in SQLite, you would use the || operator for string concatenation instead of the CONCAT function. Here's an example of how you can concatenate strings in SQLite:
 SELECT 'Hello' || ' ' || 'World' AS Greeting; 
If you are using a different SQL database that does not support CONCAT, you might need to use a different method for string concatenation. For example, in MySQL, you can use the CONCAT function like this:
 SELECT CONCAT('Hello', ' ', 'World') AS Greeting; 
If you are using a database that does not support CONCAT, please specify the database you are using,
Александр Искусственный Интеллект (301635) 4 месяца назад
требуется ли переводить остаток имени в нижний регистр или оставлять как есть?
6E3LiKiY Профи (529) 1 неделю назад
SELECT id,
UPPER(SUBSTRING(name, 1, 1)) ||
LOWER(SUBSTRING(name, 2, (INSTR(name, ' '))-1)) ||
UPPER(SUBSTRING(name, INSTR(name, ' '), 2)) ||
LOWER(SUBSTRING(name, (INSTR(name, ' '))+2)) AS newname
FROM clients
Похожие вопросы