Мне нужен способ проверить, существует ли значение в заданном массиве. До сих пор я придумал что-то вроде этогоПроверьте, существует ли значение в массиве Postgres
select '{1,2,3}'::int[] @> (ARRAY[]::int[] || value_variable::int)
, но я продолжаю думать, должен быть более простой способ это, я просто не могу видеть это.
Edit: Просто понял, что я мог бы сделать это
select '{1,2,3}'::int[] @> ARRAY[value_variable::int]
Это намного лучше, и я полагаю, будет достаточно, но если у вас есть другие способы сделать это, пожалуйста, поделитесь.
Спасибо. Должен был пропустить эту часть руководства. Это отлично работает. Он имеет побочный эффект автоматического литья. Пример: SELECT 1 :: smallint = ANY ('{1,2,3}' :: int []) работает. Просто не забудьте поставить ANY() в правой части выражения. –
Спасибо за ответ. Возникла проблема, когда мой запрос работал на локальном, но в героике было метать это сообщение: «ANY/ALL (array) требует массив на правой стороне», добавление ':: int []' делало обаяние. – kinduff
где S.employee_id <@ ANY ('"+ employeeIDsArray +"' :: int []) Это возвращает значение PSQLException: ERROR: отсутствует значение измерения – Ramprasad