Оператор регулярного выражения, дающий ошибку, не существует: bigint ~ unknown - PullRequest
0 голосов
/ 15 мая 2018

Я очень плохо знаком с postgres и пытаюсь выяснить проблему с запросом с помощью регулярных выражений.

Запрос:

select name, ip_address, install_status 
from sn_cache_prod.cmdb_ci 
where support_group = 'bee96a2135a631007fa2c5751b2c74be'
and u_environment = 5 
and install_status ~ '(110|3)';

Ошибка:

ERROR:  operator does not exist: bigint ~ unknown

install_status столбец определяется как bigint.

Может ли запрос работать без приведения?

1 Ответ

0 голосов
/ 15 мая 2018

Регулярные выражения применяются к строковым (текстовым) значениям, их нельзя использовать для чисел.В вашем случае вам нужен оператор IN:

select name,ip_address,install_status 
from sn_cache_prod.cmdb_ci 
where support_group = 'bee96a2135a631007fa2c5751b2c74be'
  and u_environment = 5 
  and install_status in (110,3);

Это эквивалентно

and (install_status = 110 or install_status = 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...