Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Регистр со строками в MsSQL  [new]
Tamila86
Member

Откуда:
Сообщений: 81
Подскажите пожалуйста какие есть функции по работе со строками, чтоб текст выводился первая буква заглавная остальные маленькие и так каждое слова в строке? (типа записываем адрес Область Город Село и т.д.)?
5 июл 11, 06:48    [10921804]     Ответить | Цитировать Сообщить модератору
 Re: Регистр со строками в MsSQL  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
UPPER + CHARINDEX
5 июл 11, 07:32    [10921832]     Ответить | Цитировать Сообщить модератору
 Re: Регистр со строками в MsSQL  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
Tamila86
Подскажите пожалуйста какие есть функции по работе со строками, чтоб текст выводился первая буква заглавная остальные маленькие и так каждое слова в строке? (типа записываем адрес Область Город Село и т.д.)?

А это вообще справочники ))), как и названия городов и стран.
5 июл 11, 07:55    [10921848]     Ответить | Цитировать Сообщить модератору
 Re: Регистр со строками в MsSQL  [new]
Tamila86
Member

Откуда:
Сообщений: 81
Ken@t,

да, в справочниках они хранятся большими буквами поэтому при выводе на печать необходимо первая большая буква, а остольные маленькие
5 июл 11, 07:57    [10921850]     Ответить | Цитировать Сообщить модератору
 Re: Регистр со строками в MsSQL  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
declare @str varchar(50) = 'qwert yuio    vbvb'

select @str = case when substring(@str, number - 1, 1) = ' '
              then stuff( @str, number, 1, upper ( substring( @str, number, 1) ) )
              else @str end 
  from master..spt_values 
  where type = 'P' 
    and number between 1 and len(@str)
    
select @str
5 июл 11, 08:02    [10921861]     Ответить | Цитировать Сообщить модератору
 Re: Регистр со строками в MsSQL  [new]
Tamila86
Member

Откуда:
Сообщений: 81
Knyazev Alexey,

Класс!!! ))) Спасибо то что надо, его же я могу использовать как отдельную скалярную функцию?!!!

А вот только он с больших букв не делает ('HGKHG TKY Y YG FDE ') такое не переделывает (((
5 июл 11, 09:13    [10922042]     Ответить | Цитировать Сообщить модератору
 Re: Регистр со строками в MsSQL  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Tamila86
Knyazev Alexey,

Класс!!! ))) Спасибо то что надо, его же я могу использовать как отдельную скалярную функцию?!!!

А вот только он с больших букв не делает ('HGKHG TKY Y YG FDE ') такое не переделывает (((


а вы изначально сделайте
lower()
5 июл 11, 10:58    [10922806]     Ответить | Цитировать Сообщить модератору
 Re: Регистр со строками в MsSQL  [new]
Начинающий SQL 2008
Member

Откуда:
Сообщений: 438
Tamila86,

declare @str varchar(50)
set @str = 'qWErt YUIO    vbvb'

select (
 select case substring(@str, number-1, 1) when ' ' then upper(substring(@str, number, 1)) else lower(substring(@str, number, 1)) end
 from master..spt_values 
 where type = 'P' 
 and number between 1 and len(@str)
for xml path(''),type).value('text()[1]','NVarChar(max)')
5 июл 11, 12:00    [10923345]     Ответить | Цитировать Сообщить модератору
 Re: Регистр со строками в MsSQL  [new]
Tamila86
Member

Откуда:
Сообщений: 81
Начинающий SQL 2008,

Огромное спасибо !!! Вы очень помогли!!! То что нужно!!!
5 июл 11, 12:07    [10923425]     Ответить | Цитировать Сообщить модератору
 Re: Регистр со строками в MsSQL  [new]
Начинающий SQL 2008
Member

Откуда:
Сообщений: 438
Tamila86,
Да не за что...

Кстати,
его же я могу использовать как отдельную скалярную функцию?!!!
Лучше не скалярную, а InLine функцию. Скалярные работают медленнее
5 июл 11, 12:12    [10923474]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить