Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Замена любого символа в строке
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток Прошу совета - как заменить любые несколько неизвестных заранее символов на такое же количество например звездочек? Причем, без использования переменных и рекурсии. Мой запрос подставляет один символ '*', а надо подставить 7 штук, по количеству букв. Есть какой то способ? Код: sql 1. 2. 3. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 04:14 |
|
||
|
Замена любого символа в строке
|
|||
|---|---|---|---|
|
#18+
Дык, заменяй на 7 (семь) звездочек, вместо одной. В чем проблема то? Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 07:42 |
|
||
|
Замена любого символа в строке
|
|||
|---|---|---|---|
|
#18+
aleks222Дык, заменяй на 7 (семь) звездочек, вместо одной. В чем проблема то? Код: sql 1. Спасибо, добрый человек. про replicate не знал, полезная штука. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 14:30 |
|
||
|
Замена любого символа в строке
|
|||
|---|---|---|---|
|
#18+
А может быть можно как-то по шаблону заменять одни символы на другие? Потому что для варианта 'моя длинная длинная строка' мое решение уже не подходит. Нужно, чтобы было 'моя ******* ******* строка' То есть пробелы сохранить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 14:34 |
|
||
|
Замена любого символа в строке
|
|||
|---|---|---|---|
|
#18+
Гордон Шамуэй, Ессно, чтобы работало и для варианта 'моя очень длинная длинная строка' и т. д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 14:36 |
|
||
|
Замена любого символа в строке
|
|||
|---|---|---|---|
|
#18+
Гордон ШамуэйГордон Шамуэй, Ессно, чтобы работало и для варианта 'моя очень длинная длинная строка' и т. д. Дык, табличка с заменами? 'длинная', '******' и replace в цикле или CTE. Правда, "неизвестных заранее символов" - это сильно портит дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 15:55 |
|
||
|
Замена любого символа в строке
|
|||
|---|---|---|---|
|
#18+
Пардон, был невнимателен... STRING_SPLIT + сборка обратно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 15:57 |
|
||
|
Замена любого символа в строке
|
|||
|---|---|---|---|
|
#18+
aleks222Пардон, был невнимателен... STRING_SPLIT + сборка обратно. STRING_SPLIT появилась только в 2016 CTE быть не должно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 16:14 |
|
||
|
Замена любого символа в строке
|
|||
|---|---|---|---|
|
#18+
CTE можно заменить FOR XML PATH. Split - написать самому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 17:27 |
|
||
|
Замена любого символа в строке
|
|||
|---|---|---|---|
|
#18+
Гордон Шамуэй, Если Split самому писать не хочется, за вас его может сделать xml. Как-то так: Код: sql 1. 2. 3. 4. Чтобы выглядело более читаемо, в примере первое и последнее слово отделять не стала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 18:17 |
|
||
|
Замена любого символа в строке
|
|||
|---|---|---|---|
|
#18+
Eleanor, Спасибо, интересное решение. Совсем ничего об этом не знаю. А где можно об этом почитать? Или можете объяснить на пальцах что в этом коде происходит? И еще, поскольку данные нужно брать из реальной таблицы, то есть вместо "моя самая длинная строка" будет какой-нибудь column1, куда вставлять выражение FROM table? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 00:30 |
|
||
|
Замена любого символа в строке
|
|||
|---|---|---|---|
|
#18+
EleanorЕсли Split самому писать не хочется, за вас его может сделать xml.только вот скорость работы у этого Код: sql 1. не особо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 01:28 |
|
||
|
Замена любого символа в строке
|
|||
|---|---|---|---|
|
#18+
а чем стандартное решение по "replacce" тебя не устраивает? Код: sql 1. 2. Ну а если есть возможность создать табличку с полями: ReplaceFrom и ReplaceTo, то можно обернуть в cursor. Еще вариант написать некую функцию, где параметрами будет выступать твое поле из таблицы и далее писать select используя твою функцию. зато будет возможность увеличивать количество этих символов для замены на '****' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 11:23 |
|
||
|
Замена любого символа в строке
|
|||
|---|---|---|---|
|
#18+
Гордон ШамуэйА где можно об этом почитать? Почитать можно в документации. Sql Server реализовал довольно большую часть стандарта xml: Функции query и nodes То, что пишется внутри функций query и nodes - это выражения XPath . XPath - это часть стандартного языка запросов к xml, XQuery. В частности, обработка по циклу for $i in - это синтаксис FLWOR Или можно почитать книгу Pro SQL Server 2008 XML Гордон ШамуэйИли можете объяснить на пальцах что в этом коде происходит? Строка 'моя длинная строка' искусственно превращается в xml вида <a>моя</a><a>длинная</a><a>строка</a>. По циклу для каждого нода "а" вычисляется длина, находящегося там слова, и возвращается в виде <b>3</b><b>7</b><b>6</b>. Производится преобразование xml в таблицу со значениями 3, 7, 6 Функция REPLICATE заменяет значения в таблице на ***, *******, ******. Значения таблицы сворачиваются в строку через пробел с помощью FOR XML PATH. Если у вас это рабочий код, то лучше все-таки написать свою функцию split, т.к. работа с xml в Sql Server отличается не самой высокой скоростью, как уже отметил Дедушка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 13:09 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39641722&tid=1689764]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 337ms |

| 0 / 0 |
