powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите создать запрос с REPLACE
39 сообщений из 39, показаны все 2 страниц
Помогите создать запрос с REPLACE
    #38290163
nuklon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Этот вопрос в продолжение темы http://www.sql.ru/forum/1027453/regulyarka-v-mysql-ili-zamena-simvolov-na-bukvy , там речь шла о поиске по лат. символам. Для решения предложили создать параллельно поле с замененными символами.
Вопрос:
Можно ли с помощью ф-ии REPLACE заменить символы из одного массива на соответствующие символы другого (или, незнаю, как-то сопоставить эти символы в ms sql). Как бы замена Oracle'ковской ф-ии TRANSLATE.
Если можно такое замутить, то как создать такой запрос? Взять строку из поля, например, sNAme и вставить измененную строку в поле sNameSearch.
у меня SQL SERVER 2008 R2
тип полей nvarchar(4000)
кодировка cp1251

Записей очень много ~10Тб, но это в начале, потом каждый день по десятки-сотни тысяч строк

Помогите разобраться
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290179
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если втупую, то N вложенных реплейсов где N- количество обрабатываемых символов. Не могу сказать сходу как оно скажется на быстродействии.
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290187
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nuklon,

1. Сделать у себя постоянную таблицу с числами, если её ещё нет.
2. В подзапросе (derived table) разобрать строки таблицы на символы с помощью этой таблицы чисел.
3. Собрать в запросе строки из джойна подзапроса из п.2 с таблицей замен с помощью FOR XML PATH(''), TYPE.

Где-то на форуме я это писал, но что-то найти не могу.
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290189
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CammomileЕсли втупую, то N вложенных реплейсов где N- количество обрабатываемых символов. Не могу сказать сходу как оно скажется на быстродействии.Вроде говорится о каком-то "другом массиве с соответствующими символами".
Так просто вложенные REPLACEы не применишь.
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290191
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну мне показалось, что автор несколько спутанно выразился.
Ему же надо. насколько я понял, приводить некую строку, содержащую разные символы, к латинице. Это как раз запросто реплейсами.
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290197
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
DECLARE @str varchar(10) 
SET @str = 'об вp' /*тут p - аглийская Пи*/


SELECT UPPER(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@str,'о','0'),'б', 'B'),'р','R'),'в','V') ,' ','') )
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290201
Гость333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapCammomileЕсли втупую, то N вложенных реплейсов где N- количество обрабатываемых символов. Не могу сказать сходу как оно скажется на быстродействии.Вроде говорится о каком-то "другом массиве с соответствующими символами".
Так просто вложенные REPLACEы не применишь.
Судя по ссылке, данной в начале темы, "массивы с соответствующими элементами" заранее известны. Соответственно, и вложенные replace'ы можно написать.
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290204
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CammomileНу мне показалось, что автор несколько спутанно выразился.
Ему же надо. насколько я понял, приводить некую строку, содержащую разные символы, к латинице. Это как раз запросто реплейсами.Это баян!
Есть ли у кого готовая функция перевода (транслит) с руского на английский
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290212
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут транслит не нужен, насколько я пони. Т.е. надо не Я - менять на Ya, а отслеживать хитрожопых, которые ВИЗУАЛЬНО ОДИНАКОВЫЕ буквы меняют на английские или цифры
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290214
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ps
Код с реплейсами на 2 монитора убил наповал ...
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290235
Гость333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cammomileнасколько я пони

вы уже не впервые признаётесь, что вы — пони 14343682
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290271
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nuklon,

10230455
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290287
nuklon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CammomileТут транслит не нужен, насколько я пони. Т.е. надо не Я - менять на Ya, а отслеживать хитрожопых, которые ВИЗУАЛЬНО ОДИНАКОВЫЕ буквы меняют на английские или цифрыименно так. главная задача отслеживать заказы негодяев, которые т.о., хотят, чтобы торги выигрывали "нужные люди".
А вот код, которые вы привели, его можно запускать раз в сутки и тока новые (т.е, за последние сутки)? если да, то как?

з.ы. с sql server'ом дружу не очень
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290296
nuklon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapnuklon,

1. Сделать у себя постоянную таблицу с числами, если её ещё нет.
2. В подзапросе (derived table) разобрать строки таблицы на символы с помощью этой таблицы чисел.
3. Собрать в запросе строки из джойна подзапроса из п.2 с таблицей замен с помощью FOR XML PATH(''), TYPE.

Где-то на форуме я это писал, но что-то найти не могу.гыгы, не. мне нужно готовое решение. Слишком туго с sql server'ом
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290305
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nukloniapnuklon,

1. Сделать у себя постоянную таблицу с числами, если её ещё нет.
2. В подзапросе (derived table) разобрать строки таблицы на символы с помощью этой таблицы чисел.
3. Собрать в запросе строки из джойна подзапроса из п.2 с таблицей замен с помощью FOR XML PATH(''), TYPE.

Где-то на форуме я это писал, но что-то найти не могу.гыгы, не. мне нужно готовое решение.Для этого есть специальный форум - Работа
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290307
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фига, какой нынче стёдент наглый пошёл!
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290311
nuklon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapnuklonпропущено...
гыгы, не. мне нужно готовое решение.Для этого есть специальный форум - Работа а этот форум для чего, чтобы печатать ссылки на другой форум? :)
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290313
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CammomileФига, какой нынче стёдент наглый пошёл!Я тоже удивился.
Нет чтобы поговорить!
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290315
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nukloniapпропущено...
Для этого есть специальный форум - Работа а этот форум для чего, чтобы печатать ссылки на другой форум? :)
Ну явно не для того, чтобы давать вам готовые решения... почитайте правила.. никто ничем вам не обязан!
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290320
nuklon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CammomileФига, какой нынче стёдент наглый пошёл!так почти же написал, вот твое предложение оно верное? Если да то как ее продолжить и можно ли запускать его раз в сутки?
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290323
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nuklonCammomileФига, какой нынче стёдент наглый пошёл!так почти же написал, вот твое предложение оно верное? Если да то как ее продолжить и можно ли запускать его раз в сутки?
Как продолжить хорошо описано здесь:
http://msdn.microsoft.com/ru-ru/library/ms186862(v=sql.100).aspx

А чтобы запускать раз в сутки надо настроить задание агента SQL Server
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290325
nuklon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
блин, товарищи, вы время тратите чтобы сказать, что ничем мне не поможете, за это время можно было понакатать что-нибудь
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290326
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nukloniapпропущено...
Для этого есть специальный форум - Работа а этот форум для чего, чтобы печатать ссылки на другой форум? :)Для общего обсуждения появившихся проблем программистами, включая автора темы.
А не одностороннего выполнения заказа такого вот "работодателя".
Я даже намекнул на возможный успешный поиск "готового решения" на этом форуме.
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290332
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nuklonблин, товарищи, вы время тратите чтобы сказать, что ничем мне не поможете, за это время можно было понакатать что-нибудь
а вы за это время могли бы вполне изучить использование интересующей вас функции, разве не так?
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290337
nuklon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Викт.Как продолжить хорошо описано здесь:
http://msdn.microsoft.com/ru-ru/library/ms186862(v=sql.100).aspx

А чтобы запускать раз в сутки надо настроить задание агента SQL Serverвоот, можно же и без оплаты советы давать )
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290338
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nuklonСергей Викт.Как продолжить хорошо описано здесь:
http://msdn.microsoft.com/ru-ru/library/ms186862(v=sql.100).aspx

А чтобы запускать раз в сутки надо настроить задание агента SQL Serverвоот, можно же и без оплаты советы давать )
ну так то советы, а не готовые решения!
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290339
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nuklonблин, товарищи, вы время тратите чтобы сказать, что ничем мне не поможете, за это время можно было понакатать что-нибудь
если б в первом посте было указано, что вам нужна не помощь, а готовое решение, то никто бы время и не тратил
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290343
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он еще и выговаривает! Ну люди... =\
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290344
nuklon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Викт.а вы за это время могли бы вполне изучить использование интересующей вас функции, разве не так?а что делаю?
я могу тоже самое на php написать, тока я думал прямо в sql server'e будет быстрее. Есть еще вариант на Delphi, просто нужно было мнение подкованных в этом вопросе людей
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290347
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nuklonСергей Викт.а вы за это время могли бы вполне изучить использование интересующей вас функции, разве не так?а что делаю?
я могу тоже самое на php написать, тока я думал прямо в sql server'e будет быстрее. Есть еще вариант на Delphi, просто нужно было мнение подкованных в этом вопросе людей
Вы просите готовое решение, а сейчас уже говорите о том, что вам нужно было мнение... Я вас правда не понимаю.

А это просто так, для общей картины обстановки на форуме. Если вдруг в будущем у вас возникнет необходимость обратиться, то помните:

[qout Glory]10. Этот форум добровольный. Никто не обязан здесь Вам ничем. Все ответы даются добровольно. Подначивания типа: "ну что видать нет тут никаких профи" и "а вот слабо вам гуры" не приветствуются. Жалобы вида "я бедный студент, завтра зачет, а ничего не готово" и "ну что вам лень что ли написать полный запрос" - тоже. Основная цель форума - дать Вам рекомендации как Вам решить Вашу проблему. Никто не обязан делать Вашу работу за Вас.[qout]
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290353
nuklon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cammomile
Код: sql
1.
2.
3.
4.
DECLARE @str varchar(10) 
SET @str = 'об вp' /*тут p - аглийская Пи*/

SELECT UPPER(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@str,'о','0'),'б', 'B'),'р','R'),'в','V') ,' ','') )

да совет, вот например, этот код правильное решение (ну в плане быстроты, вообще логики)? Если это выход дальше возьму его за основу.
И второй момент, записей как я сказал ооооочень много, такой код прокатит или какие-то задержки делать? если да, то как?

Подскажите, это же не готовое решение
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290358
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nuklonCammomile
Код: sql
1.
2.
3.
4.
DECLARE @str varchar(10) 
SET @str = 'об вp' /*тут p - аглийская Пи*/

SELECT UPPER(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@str,'о','0'),'б', 'B'),'р','R'),'в','V') ,' ','') )

да совет, вот например, этот код правильное решение (ну в плане быстроты, вообще логики)? Если это выход дальше возьму его за основу.
И второй момент, записей как я сказал ооооочень много, такой код прокатит или какие-то задержки делать? если да, то как?

Подскажите, это же не готовое решение
В плане быстроты точно будет ясно, когда полностью будет готов запрос.
Задержки делать не надо, для 10Тб данных вам даже замена одной буковки обойдётся совсем не в 10 секунд:)
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290368
nuklon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Викт. Я вас правда не понимаю.имелось ввиду, явные указания на решение (ну типа правильный код, хотя бы кусок и в каком направлении дальше двигаться), а не типа "почитай там", "стань лауретом" и т.п.
Сергей Викт. Задержки делать не надо, для 10Тб данных вам даже замена одной буковки обойдётся совсем не в 10 секунд:)а ошибка не выпадет, мол памяти не хватает или еще че-то там?
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290375
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данные можно обрабатывать небольшими порциями, например. Безотносительно конкретно моего примера кода ;-)
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290388
nuklon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CammomileДанные можно обрабатывать небольшими порциями, например. Безотносительно конкретно моего примера кода ;-)мм.. вот я об этом и спрашиваю, как sql'ом задать чтобы он обрабатывал небольшими порциями?
А вторая часть.. - не понял. т.е., твой код нельзя порциями запускать?
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290393
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nuklonCammomileДанные можно обрабатывать небольшими порциями, например. Безотносительно конкретно моего примера кода ;-)мм.. вот я об этом и спрашиваю, как sql'ом задать чтобы он обрабатывал небольшими порциями?
А вторая часть.. - не понял. т.е., твой код нельзя порциями запускать?
Порциями запускается не код. Порциями в этот код передаются обрабатываемые данные.
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290415
nuklon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Викт.Порциями запускается не код. Порциями в этот код передаются обрабатываемые данные. и как же это сделать?
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290435
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зависит от того как организованны обрабатываемые данные.

Серьезно, не ждите, что вам положат в рот волшебную пилюлю. Если вы хотите работать с эскуль сервером, вам необходимо освоить определенные азы.
...
Рейтинг: 0 / 0
Помогите создать запрос с REPLACE
    #38290452
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nuklonСергей Викт.Порциями запускается не код. Порциями в этот код передаются обрабатываемые данные. и как же это сделать?
Например у вас таблица на 100 млн. записей.

Берёте например первый миллион записей из первой таблице и переносите во вспомогательную, далее во вспомогательной делаете то, что вам нужно. и т.д.
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите создать запрос с REPLACE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]