Как сделать первую букву заглавной sql
Перейти к содержимому

Как сделать первую букву заглавной sql

Как лучше всего использовать заглавную первую букву каждого слова в строке в SQL Server?

Как лучше всего использовать заглавную первую букву каждого слова в строке в SQL Server?

Это нужно делать в SQL Server? Это не то, что я бы связал с сервером базы данных, а что-то, что делается с помощью проверки формы или даже представления.

Пользователи PostgreSQL: ОБНОВЛЕНИЕ [таблица] УСТАНОВИТЕ your_col = initcap (lower (your_col)); Это не вопрос Postgre, но в любом случае он появляется первым в Google.

Формы c голосовым вводом в React с помощью Speechly

Flatpickr: простой модуль календаря для вашего приложения на React

Что такое cURL в PHP? Встроенные функции и пример GET запроса

Ответы 16

Здесь есть более простой / меньший (но он не работает, если в какой-либо строке нет пробелов, «Неверный параметр длины передан в ПРАВУЮ функцию.»):

что означает ВЕРХНИЙ (@Char)! = ‘S’? почему мы это используем?

Сравнение с ‘S’ заключается в том, чтобы убедиться, что S не пишется с заглавной буквы при написании таких слов, как that’s .

Функция немного медленная, но работает правильно. Как я могу повысить производительность?

Не работает для слов с ‘ , за которыми не следует S . Такие как I’m , you’ve и т. д.

Почему OutputString равно 255, когда input равен 4000 и тоже возвращается?

Вариант того, который я использую довольно давно:

Вы можете легко изменить обработку символов после элементов, отличных от пробелов, если хотите.

Другое решение без использования цикла — подход на основе чистого набора с рекурсивным CTE

Вот простейший однострочный код.

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

Кроме того, вы не делаете Upper по первой букве.

Это только первая буква столбца.

@Amrik Как @JohnnyBizzle прокомментировал выше, я думаю, вы имели в виду следующее: select UPPER(LEFT(column, 1)) + lower(RIGHT(column, len(column)-1) ) from [tablename]

Используйте lower (stuff (column, 1,1, »)) вместо lower(RIGHT(column, len(column)-1) )

Вы должны попробовать это вместо этого

Это сделает первую букву упомянутых записей атрибутов заглавной.

«INITCAP» не является встроенной функцией — вам необходимо предоставить определение функции.

Я использую INITCAP в Oracle MYSQL, и он отлично работает

Да, но вопрос конкретно касается SQL Server.

В качестве возвращающей табличное значение функции:

Обратите внимание, что string_split требует COMPATIBILITY_LEVEL 130.

Обратите внимание на негарантированный порядок функции STRING_SPLIT. Я бы добавил ORDER BY CHARINDEX (значение, @ v) после строки FROM

Очень простой способ сделать первый символ заглавным в SQL Server

Только данные на английском языке.

Супер неэффективный с точки зрения производительности, но эффективный с точки зрения производительности. Используйте его как разовый конвертер:

Я искал лучший способ использовать заглавные буквы и воссоздал простой скрипт sql

как использовать SELECT dbo.Capitalyze (‘это тест с несколькими пробелами’)

результат «Это тест с несколькими пробелами»

СОЗДАТЬ ФУНКЦИЮ Capitalyze (@input varchar (100)) возвращает varchar (100) в качестве начинать

fname — это имя столбца, если значение fname равно akhil, затем UPPER (left (fname, 1)) предоставить заглавную первую букву (A) и функцию подстроки SUBSTRING (fname, 2, LEN (fname)) provide (khil) объединить оба, используя +, затем результат есть (Ахил)

Дайте объяснение, чтобы было легко понять решение

привет @Harsha B, я объяснил это, если есть комментарий к запросу.

Если вы ищете ответ на тот же вопрос в Oracle / PLSQL, вы можете использовать функцию INITCAP. Ниже приведен пример атрибута dname из таблицы отделение, которая имеет значения («продажи», «управление», «производство», «разработка»).

Привет, Андрей. Опишите свое решение и попробуйте используйте уценку, чтобы улучшить читаемость ответа отформатировать код.

В SQL Server 2016+ используется JSON, который дает гарантированный порядок слов:

  • Эндрю-Ле-Смит
  • Боб твой дядя
  • Карл-Ван
  • Дин О’Брайан
  • Эдди Томпсон

Использование рекурсивного запроса на основе набора CTE должно выполнять процедурный запрос цикла while. Здесь я также выделил 3 разных символа [- ‘] вместо 1 для более сложного примера. Использование PATINDEX, как я это сделал, позволяет мне искать множество символов. Вы также можете использовать CHARINDEX для одного символа, и эта функция исключает третий параметр StartFromPosition, чтобы я мог просто продолжить свою вторую часть рекурсии формулы pos до (при условии, что пробел): pos = CHARINDEX (», Name, pos + 1).

ВЫБЕРИТЕ dbo.ProperCase (‘Xyz ПОСЛЕ qrst’)

Другие вопросы по теме

Похожие вопросы

Находите ответы на сложные технические вопросы по программированию, с которыми сталкиваются инженеры по всему миру в своей ежедневной практике на сайте RedDeveloper.

Заглавная буква. В MySQL

знает ли кто-нибудь эквивалент этого TSQL на языке MySQL?

Я пытаюсь использовать первую букву каждой записи.

11 ответов

это почти то же самое, вам просто нужно изменить, чтобы использовать функцию CONCAT () вместо оператора+:

это превратит hello to Hello , wOrLd до WOrLd , BLABLA to BLABLA , etc. Если вы хотите, чтобы верхний регистр первой буквы и нижний регистр другой, вам просто нужно использовать функцию LCASE:

обратите внимание, что верхний и UCASE делают то же самое.

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

но что, если вы хотите, чтобы в верхнем регистре первая буква каждого слова в строках столбца таблицы?

например: «Abbeville средней школы»

Я не нашел ответа на этот вопрос в Stackoverflow. Мне пришлось собрать несколько ответов, которые я нашел в Google, чтобы обеспечить твердое решение приведенного выше примера. Его не родная функция, а созданная пользователем функция, которая позволяет MySQL версии 5+.

Если у вас есть статус пользователя Super/Admin на MySQL или есть локальная установка mysql на вашем собственном компьютере, вы можете создать функцию (например, хранимую процедуру), которая находится в вашей базе данных и может использоваться во всех будущих SQL-запросах на любой части БД.

функции я создал позволяет мне использовать эту новую функцию я назвал «UC_Words» как раз и построена в собственные функции MySQL, чтобы я мог обновить полный столбец, как это:

чтобы вставить код функции, я изменил стандартный разделитель MySQL (;) при создании функции, а затем сбросил его обратно в нормальное состояние после скрипта создания функции. Я также лично хотел, чтобы выход был в кодировке UTF8.

это работает лечение вывода заглавных первых букв на несколько слов в пределах строка.

предполагая, что ваше имя пользователя MySQL имеет достаточные привилегии — если нет, и вы не можете настроить временную БД на своей личной машине для преобразования ваших таблиц, тогда спросите вашего общего хостинг-провайдера, установят ли они эту функцию для вас.

UPPER (Transact-SQL)

Возвращает символьное выражение, в котором символы нижнего регистра преобразованы в символы верхнего регистра.

Синтаксис

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

character_expression
Выражение символьного типа данных. Аргумент character_expression может быть константой, переменной или столбцом символьных или двоичных данных.

Аргумент character_expression должен иметь тип данных, который может быть неявно преобразован в тип varchar. В противном случае используйте CAST для явного преобразования character_expression.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *