Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Мудрый клён Member [заблокирован] Откуда: Kazan Сообщений: 646 |
Например : Mихаил - в этом слове может присутствовать буквы латинские 'M','x' и 'a'. Понятно что можно воспользоваться функцией Replace(). Но! Replace берет без учёта регистра, т.е. слово Михаил после преобрахования может выглядить так: МиХАил, в том случае если в replace были применены руские буквы верхнего регистра (UCase). Может кто-нибудь делел подобное... |
18 окт 04, 15:18 [1042205] Ответить | Цитировать Сообщить модератору |
AFire Member Откуда: UFA Сообщений: 195 |
а функция ascii() не подойдет? или громоздко получится? |
18 окт 04, 15:21 [1042217] Ответить | Цитировать Сообщить модератору |
Мудрый клён Member [заблокирован] Откуда: Kazan Сообщений: 646 |
сейчас строю 'вилосипед' из Ascii. ума неприложу как выловить и вставить ?! |
||
18 окт 04, 15:25 [1042246] Ответить | Цитировать Сообщить модератору |
Фирюза Member Откуда: Уфа Сообщений: 106 |
цикл "пока не конец слова" substring'ом отрезать символ, проверить его на латинизмость и если да, то заменить - а для замены большой case написать. |
18 окт 04, 15:31 [1042294] Ответить | Цитировать Сообщить модератору |
Алексей Р. Member Откуда: Сообщений: 304 |
Если от этой функции зависит быстродействие тогда лучше сделать без всяких проверок, а просто заменять ВСЕ символы в строке по таблице в 255 элементов в котором заполнены ВСЕ печатные символы как русские так и латинские. Где код индексом служит код символа который нужно заменить, а элементом символ на который нужно заменить. Массив лучше сделать объявить глобальным. Пример Массив = {...'&','!','@',...'0','1'... 'А','В','С',........,'а','б','с',.........,'А','Б','В',...'а','б','в',...} цикл по i s = Символ( Массив[ КодСимвола(Субстрока(s, i, 1)) ] ); конеццикла |
19 окт 04, 07:27 [1043560] Ответить | Цитировать Сообщить модератору |
Между сообщениями интервал более 1 года. |
Aleksey br Member Откуда: Сообщений: 73 |
Алексей Р., А чем не решение замена всех символов при помощи REPLACE, потом отделить первый символ при помощи SUBSTRING, сделать их UPPER, а остальные LOWER. Велосипед? но рабочий! ![]() |
25 апр 17, 12:11 [20432202] Ответить | Цитировать Сообщить модератору |
Добрый Э - Эх
Guest |
Aleksey br, молодец, что ответил... ТС 13 лет сидит и ждет твоего мнения. ;) |
25 апр 17, 12:15 [20432219] Ответить | Цитировать Сообщить модератору |
rnk Member Откуда: Сообщений: 126 |
Добрый Э - Эх, Вопрос задан, что ж не ответить... Грамотно - использовать COLLATE. Например, так: set @string=REPLACE(@string,'M','М' COLLATE Cyrillic_General_BIN) |
25 апр 17, 13:06 [20432433] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |