Re: Trouble with regexp_matches

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Trouble with regexp_matches
Дата
Msg-id 31701.1478366467@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Trouble with regexp_matches  (Edson Richter <edsonrichter@hotmail.com>)
Ответы RES: Trouble with regexp_matches  (Edson Richter <edsonrichter@hotmail.com>)
Список pgsql-general
Edson Richter <edsonrichter@hotmail.com> writes:
> I’m running the query below, and it is limiting results as if “regexp_matches” being in where clause.
> IMHO, it is wrong: in case there is no match, shall return null or empty array – not remove the result from the
set!!!

Well, no, because regexp_matches() returns a set.  If there's no match,
there's zero rows in the set.

The standard workaround is to use a scalar sub-select, which has the
effect of converting a zero-row result into a NULL:

select codigoocorrencia, datahoraocorrencia, datahoraimportacao,
       observacao, (select regexp_matches(observacao, '\d\d/\d\d/\d\d\d\d'))
from ...

As of v10 there will be a less confusing solution: use regexp_match()
instead.

            regards, tom lane


В списке pgsql-general по дате отправления:

Предыдущее
От: Adrian Klaver
Дата:
Сообщение: Re: Trouble with regexp_matches
Следующее
От: Edson Richter
Дата:
Сообщение: RES: Trouble with regexp_matches