Sql выбрать из массива значения, которых нет в таблице

Мне надо написать функцию, в которую можно передать массив и она вернёт значения из таблицы, которых нет в массиве. Например, массив names_array = ['Kirill', 'Masha', 'Dasha'] И есть таблица, например, студенты:

student(
    student_id bigserial primary key,
    student_first_name varchar(20) NOT NULL,
    student_last_name varchar(20) NOT NULL,
    something text DEFAULT NULL
)

Хотелось бы что-то, вроде,

CREATE OR REPLACE FUNCTION test(names_array text[] )
  RETURNS text[] AS
$BODY$
BEGIN
  result := SELECT name FROM names_array WHERE name NOT IN (SELECT student_first_name FROM student);

  return result;
END;
$BODY$
  LANGUAGE plpgsql

И если в таблицу нет студентов Кирилла(ов), но есть Даша и Маша (а может их вообще несколько), то result = ['Kirill']


Ответы (0 шт):