sql >> Database teknologi >  >> RDS >> PostgreSQL

PLpgSQL-funktionen returnerer ikke matchende titler

Bortset fra dit umiddelbare citeringsproblem (er blevet løst korrekt af Jeff), kan funktionen være meget enklere og hurtigere som denne:

CREATE or REPLACE FUNCTION q11(partial_title text) 
  RETURNS SETOF text
  LANGUAGE plpgsql AS
$func$
BEGIN
   RETURN QUERY
   SELECT m.title || ' has ' || m.ncrew || ' cast and crew'
   FROM   movie_makers m
   WHERE  m.title ~* $1;
   
   IF NOT FOUND THEN
      RETURN NEXT 'No matching titles';
   END IF;
END
$func$;

Vigtigste punkter:

Bortset fra:giver næppe mening at filtrere på en visning, der allerede vælger 'Fight Club' som sin eneste række. For en meningsfuld søgning ville du ikke bruge disse visninger ...



  1. OPRET SPROG plpython3u – PostgreSQL 9.6

  2. Veltalende:Calling Where on a relation

  3. CodeIgniter/PHP Active Record vil ikke øge et heltal

  4. Sådan indstiller du statuslinjefarve i SSMS til forskellige SQL Server-forekomster - SQL Server / TSQL vejledning del 6