#sql #regex #oracle
#sql #регулярное выражение #Oracle
Вопрос:
Привет сообществу stackoverflow
У меня следующая проблема, и я очень надеюсь, что кто-нибудь сможет направить меня в правильном направлении, используя oracle database 11.2.0.4
select count(*)
from pi_track
==> возвращает 1’200’000 строк
И,
select count(*)
from pi_track
where REGEXP_LIKE (track,'^[[:digit:]]{4}
==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1'000'000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
WITH pi_track AS
(SELECT 'aaaaa' AS track FROM dual UNION ALL
SELECT 'bbbbb' AS track FROM dual UNION ALL
SELECT 'ccccc' AS track FROM dual UNION ALL
SELECT 'ddddd' AS track FROM dual)
SELECT count(*) FROM pi_track
WHERE NOT REGEXP_LIKE (track,'^a*
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
- Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
with pt as (
select
count(*) c
from pi_track
)
select
pt.c - count(*)
from
pt,
pi_track
where
REGEXP_LIKE (track,'^[[:digit:]]{4}
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
select * from pi_track
minus
select * from pi_track where REGEXP_LIKE (track,'^[[:digit:]]{4}
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
select count(*)
from pi_track
where not REGEXP_LIKE (track,'^[[:digit:]]{4}
==> возвращает 200 000 строк
)
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1'000'000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
- Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
AND NOT REGEXP_LIKE (track,'^b*
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
- Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1'000'000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
- Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
);
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
- Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1'000'000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
- Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
group by
pt.c;
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
AND NOT REGEXP_LIKE (track,‘^b*
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
);
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
AND NOT REGEXP_LIKE (track,‘^b*
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
);
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
group by
pt.c;
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
AND NOT REGEXP_LIKE (track,‘^b*
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
);
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
)
==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
AND NOT REGEXP_LIKE (track,‘^b*
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
);
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
group by
pt.c;
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
AND NOT REGEXP_LIKE (track,‘^b*
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
);
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
AND NOT REGEXP_LIKE (track,‘^b*
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
);
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
group by
pt.c;Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
AND NOT REGEXP_LIKE (track,‘^b*
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)
==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
);
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.
)==> возвращает 200 000 строк
Как я могу объединить эти два оператора, чтобы второй оператор вычитался из первого и, следовательно, возвращал 1’000’000 строк?
То, что я пытаюсь сделать, это вычесть из первого запроса несколько нескольких, чтобы у меня был список результатов, в котором не применяется ни одно из условий where (regexp_like) (которые затем я могу проверить вручную)
Комментарии:
1. Разве вы не можете просто отрицать предложения WHERE, чтобы получить правильное количество?
2. @AnthonyGrist Отрицание этого может быть более дорогостоящим, чем соответствующий шаблон регулярных выражений
Ответ №1:
Вы можете отрицать REGEXP_LIKE
с NOT
помощью и использовать несколько из них AND
.
Пример:
Комментарии:
1.
WHERE REGEXP_LIKE (track,'^[^(a|b)]*$');
— Лучший вариант.2. Большое вам спасибо за ваш ценный вклад! Будет играть со всем этим
Ответ №2:
Если вы действительно ищете счетчик:
Если вам действительно нужны данные, а не просто количество, вы можете фактически вычесть их, используя минус.
Я не тестировал производительность, но это дает вам другой вариант.
Или вы можете просто добавить NOT к текущему выбору.