powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Количество вхождений символа в строку
45 сообщений из 45, показаны все 2 страниц
Количество вхождений символа в строку
    #36340134
Refuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не подскажете, как посчитать количество вхождений символа в строку. Насколько я знаю, специальной функции для этого нет...
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #36340138
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удаляешь символ из строки и сравниваешь длину строки до удаления и после
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #36340178
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Refuser,

regexp_count
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #36340183
-2-Refuser,

regexp_countНу конечно, оно же у всех в продакшине база на 11g вертится...
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #36340223
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эх,

Задолбался писать "если версия позволяет", сам догадается.
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #36340366
SQLap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RefuserНе подскажете, как посчитать количество вхождений символа в строку. Насколько я знаю, специальной функции для этого нет...

Код: plaintext
select length('baraban') - length(replace('baraban','a','')) from dual
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #36340375
SQLapRefuserНе подскажете, как посчитать количество вхождений символа в строку. Насколько я знаю, специальной функции для этого нет...

Код: plaintext
select length('baraban') - length(replace('baraban','a','')) from dual

Выделенное - нафиг не нужно. :)
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #36340380
SQLap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - ЭхВыделенное - нафиг не нужно. :)

Это для наглядности. Не заметил поста Вячеслав Любомудров, подумал люди действительно egexp_countом для этого пользуются.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Количество вхождений символа в строку
    #39122570
wwwlz-grand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав ЛюбомудровУдаляешь символ из строки и сравниваешь длину строки до удаления и после
Гениально!
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39122578
нвл0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wwwlz-grandВячеслав ЛюбомудровУдаляешь символ из строки и сравниваешь длину строки до удаления и после
Гениально!не забывая в реализации через реплейс/транслейт, что строка может состоять из только подсчитываемых символов.
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39122601
Veronika82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здорово просто!

__________________

http://www.videka.ru/catalog/baget/aluminium/
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39122652
oragraf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wwwlz-grandВячеслав ЛюбомудровУдаляешь символ из строки и сравниваешь длину строки до удаления и после
Гениально!Это же закон Архимеда в чистом виде! Поэтому кричать нужно - Эврика!
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39123052
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нвл0,

Это на что-то влияет?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
with t as (
 select 'baraban' val from dual
  union all
 select 'aaa' val from dual
  union all
 select null val from dual
)
select val,length(replace(val||'@','a','@@'))-length(val||'@') cnt from t

...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39123068
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньевнвл0,

Это на что-то влияет?NVL самодокуменированней быдло-конкатенации и не ограничевает область допустимых аргументов.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Количество вхождений символа в строку
    #39536713
Smith123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQLapRefuserНе подскажете, как посчитать количество вхождений символа в строку. Насколько я знаю, специальной функции для этого нет...

Код: plsql
1.
select length('baraban') - length(replace('baraban','a','')) from dual



была школьная задача, по поиску вхождений 1 в ряде от 0 до 1000

Ваше решение интересное, но надо ещё сюда nvl воткнуть
select length('baraban') - nvl(length(replace('baraban','a','')),0) from dual


declare
v_num number:=0;
v_res_cur number:=0;
v_res number:=0;
begin
while v_num<=1000 loop
select length(to_char(v_num)) - nvl(length(replace(to_char(v_num),'1','')),0) into v_res_cur from dual;
--select REGEXP_COUNT(to_char(v_num), '1', 1, 'i') into v_res_cur from dual;
v_res:=v_res+v_res_cur;
v_num:=v_num+1;
v_res_cur:=0;
end loop;
dbms_output.put_line(v_res);
end;
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39536716
Smith123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или ряду....
пусть будет "в числовой последовательности"
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39536718
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Smith123но надо ещё сюда nvl воткнутьПлохо гробокопаешь.Smith123
Код: plsql
1.
into v_res_cur from dual;

Быдлокод. RTFM :=
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39536899
Smith123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic, а что не так?
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39536905
Smith123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Smith123Elic, а что не так?
я копировал только верх и всё... ну допишите where rownum=1
смысла не поменяется, т.к. необходимо решение, а без nvl - результат может быть некорректным.
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39536917
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Smith123ну допишите where rownum=1Говнокод усугубляется...
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39536950
ковнокот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ElicSmith123ну допишите where rownum=1Говнокод усугубляется...Не хватает еще
Код: plsql
1.
  And dummy='X'
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39536955
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Smith123SQLapпропущено...


Код: plsql
1.
select length('baraban') - length(replace('baraban','a','')) from dual



была школьная задача, по поиску вхождений 1 в ряде от 0 до 1000

Ваше решение интересное, но надо ещё сюда nvl воткнуть
select length('baraban') - nvl(length(replace('baraban','a','')),0) from dual
не надо:
Код: plsql
1.
2.
select sum(length(replace(arr.n, 1, 11)) - length(arr.n))
  from (select level as n from dual connect by level <= 1000) arr
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537047
Smith123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fogel,

красиво.
Про говнокод читать не так интересно.
Видимо всё обсирать - это стиль жизни.
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537049
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Smith123Про говнокод читать не так интересно.Smith123
Код: plsql
1.
v_num:=v_num+1;

Скажи, болезный, а почему не:
Код: plsql
1.
select v_num+1 into v_num from dual;
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537052
Smith123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicSmith123Про говнокод читать не так интересно.Smith123
Код: plsql
1.
v_num:=v_num+1;

Скажи, болезный, а почему не:
Код: plsql
1.
select v_num+1 into v_num from dual;



потому что я не теоретик как ты... пишу как мне удобно.
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537063
j2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Smith123 пишу как мне удобно.
а лучше бы поучился правильно
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537071
Де Кодэ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно оно скопипастило чужой код и изменило "как мне удобно".
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537081
Smith123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
j2k,

спасибо, поучусь.
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537087
Smith123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вообще не понял с чего вдруг надо сразу переходить на личности, обзываться быдлокодером и болезным.
Вы же элита...итнтеллигенция...
Нельзя было сказать, товарищ, у тебя кривой код, системную таблицу лучше не использовать, почитай вот тут...
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537138
Код-ревью
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Smith123обзываться быдлокодеромДомыслы. Быдлокодером тебя не называли.
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537162
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Smith123была школьная задача, по поиску вхождений 1 в ряде от 0 до 1000


А что, в школе уже математике не учат? Типа компутер быстрый - пусть себе перебирает. Числа от 1 до 100 тоже суммируем в цикле?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
select  'Digit one count in numbers 0 - ' || power(10,level) || ' is ' || (level * power(10,level - 1) + 1) cnt
  from  dual
  connect by level < 20
/

CNT
--------------------------------------------------------------------------------
Digit one count in numbers 0 - 10 is 2
Digit one count in numbers 0 - 100 is 21
Digit one count in numbers 0 - 1000 is 301
Digit one count in numbers 0 - 10000 is 4001
Digit one count in numbers 0 - 100000 is 50001
Digit one count in numbers 0 - 1000000 is 600001
Digit one count in numbers 0 - 10000000 is 7000001
Digit one count in numbers 0 - 100000000 is 80000001
Digit one count in numbers 0 - 1000000000 is 900000001
Digit one count in numbers 0 - 10000000000 is 10000000001
Digit one count in numbers 0 - 100000000000 is 110000000001
Digit one count in numbers 0 - 1000000000000 is 1200000000001
Digit one count in numbers 0 - 10000000000000 is 13000000000001
Digit one count in numbers 0 - 100000000000000 is 140000000000001
Digit one count in numbers 0 - 1000000000000000 is 1500000000000001
Digit one count in numbers 0 - 10000000000000000 is 16000000000000001
Digit one count in numbers 0 - 100000000000000000 is 170000000000000001
Digit one count in numbers 0 - 1000000000000000000 is 1800000000000000001
Digit one count in numbers 0 - 10000000000000000000 is 19000000000000000001

19 rows selected.

Elapsed: 00:00:00.01
SQL>



А теперь попробуй это перебором .

SY.
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537163
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, есть быстрое решение задачи, есть оптимальное, есть идеальное.
Зачастую останавливаемся на первом.
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537164
982183,

совершенно очевидно, что большинство разработчиков говнокодеры в силу отсутсвия способностей, лени или других причин
но выпячивать это на форуме это уже за гранью адекватности

остановленные на первом со временем осознают, что на определенном этапе их говно-систему лучше переписать с нуля чем добавить новый функционал или улучшить производительность
наша песня хороша - начинай сначала
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537166
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Капитан Улыбнитесь,

Вы говорите о нише "разработок", "тиражируемого ПО" и т.д.
А зачастую некий код пишется если не для разового применения, то для очень малого периода работы.
И устраивать оптимизацию (которая несомненно необходима при другой специфике) просто ненужно.
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537167
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя с другой стороны, смотря на то, как написаны некие приложения, хочется сильно плакать.
Наверное это лечится.
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537169
982183Капитан Улыбнитесь,

Вы говорите о нише "разработок", "тиражируемого ПО" и т.д.
А зачастую некий код пишется если не для разового применения, то для очень малого периода работы.
И устраивать оптимизацию (которая несомненно необходима при другой специфике) просто ненужно.это диалог немого с глухим

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

говнокодер человек начнет херачить в лоб не пытаясь посмотреть на задачу под разными углами
ему некогда, незачем да и вообще проблематичо думать
ему надо генерировать код
в итоге может получится решение которое даже будет давать правильный результат и работать быстро на некоторых данных
если обнаружится что на иных данных результат считается недопустимо долго,
то такой кодер будет долго препираться и пытаться доказать, что таких данных быть не должно
будет пытаться применять некорректные упрощения или допущения

фишка в том, что люди с ясным мышлением примерно могут понять подходы говнокодеров, но обратное неверно
если б говнокодеры были в состоянии мыслить ясно и четко - они бы это и делали

а вот если где-то понимаешь, что не тянешь, но исправить ничего не можешь,
то начинаешь винить форум или отвечающих или кого угодно боясь признать отсутсвие у себя способностей
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537182
Загги
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Капитан Озорница,
Ясность мышления вещь не вечная. Хвастайтесь, пока можете.
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537183
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Загги,

Мало того, что она не вечная, так она еще и приходит не сразу.
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537192
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Smith123Я вообще не понял с чего вдруг надо сразу переходить на личности, обзываться быдлокодером и болезным.Ну посуди сам, как мы можем переходить на личности, если мы твоей личности в упор не знаем?
И потом, ты зачем-то влез в давнюю тему со своим "улучшательством", но предъявил его обёрнутым в вонючие портянки. За что и отгрёб.

На публике планку нужно держать. И удар тоже.
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537240
Smith123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicSmith123Я вообще не понял с чего вдруг надо сразу переходить на личности, обзываться быдлокодером и болезным.Ну посуди сам, как мы можем переходить на личности, если мы твоей личности в упор не знаем?
И потом, ты зачем-то влез в давнюю тему со своим "улучшательством", но предъявил его обёрнутым в вонючие портянки. За что и отгрёб.

На публике планку нужно держать. И удар тоже.

Признаю, был неправ.
Буду в след.раз внимательнее.
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537326
Elic Fanats Club
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ElicSmith123Я вообще не понял с чего вдруг надо сразу переходить на личности, обзываться быдлокодером и болезным.Ну посуди сам, как мы можем переходить на личности, если мы твоей личности в упор не знаем?
И потом, ты зачем-то влез в давнюю тему со своим "улучшательством", но предъявил его обёрнутым в вонючие портянки. За что и отгрёб.

На публике планку нужно держать. И удар тоже.
Стареете, уважаемый гуру. Не посылаете, а пытаетесь образумить. Мы для того сюда и приходим, чтобы лицезреть хадкор, тонкий троллинг и остроумные шутки, а получается, что мастер уже не тот. Обидно..
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537504
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183Думаю, есть быстрое решение задачи, есть оптимальное, есть идеальное.
Зачастую останавливаемся на первом.

В данном (и во множестве других) случае это не столько решение задачи сколько её понимaние. Если понимаещь правильно но сам решить не можешь (неважно по каким причинам, например банальный цейтнот) то ищешь готовое решение (и ничего зазорного я тут не вижу). Мистер Smith123 почему-то решил что "посчитать количество вхождений символа в строку" и "поиск вхождений 1 в ряде от 0 до 1000" это та-же задача и это его ошибка. Посчитать количество вхождений символа в строку без перебора не выйдет - это случайный текст. А вот последовательность чисeл это упорядоченная систeма со всеми вытекающими.

SY
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537518
Myp3_u_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RefuserНе подскажете, как посчитать количество вхождений символа в строку. Насколько я знаю, специальной функции для этого нет...
regexp_count
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39537529
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Myp3_u_KRefuser...regexp_countА если разуть глаза ?
...
Рейтинг: 0 / 0
Количество вхождений символа в строку
    #39596788
SY
А что, в школе уже математике не учат? Типа компутер быстрый - пусть себе перебирает. Числа от 1 до 100 тоже суммируем в цикле?



Только запрос дали неверный... Спешка - зло.

Код: plsql
1.
2.
3.
select 'Digit one count in numbers 0..' || power(10, level) || ' is ' || ((level - 1) * power(10, level - 1) + 2)
  from dual
connect by level < 20
...
Рейтинг: 0 / 0
45 сообщений из 45, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Количество вхождений символа в строку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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