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

Hvordan vælger man minimum UUID med venstre ydre joinforbindelse?

Fandt en løsning, viser det sig, at funktionen sammenligner UUID'er fra dette indlæg er ikke korrekt. Her er den funktion, jeg skrev, som sandsynligvis er mindre effektiv, som passerer alle de sager, den fejlede før:

    CREATE FUNCTION min_uuid(uuid, uuid)
    RETURNS uuid AS $$
    BEGIN
        -- if they're both null, return null
        IF $2 IS NULL AND $1 IS NULL THEN
            RETURN NULL ;
        END IF;

        -- if just 1 is null, return the other
        IF $2 IS NULL THEN
            RETURN $1;
        END IF ;
        IF $1 IS NULL THEN
            RETURN $2;
          END IF;

        -- neither are null, return the smaller one
        IF $1 > $2 THEN
            RETURN $2;
        END IF;

        RETURN $1;
    END;
    $$ LANGUAGE plpgsql;


    create aggregate min(uuid) (
      sfunc = min_uuid,
      stype = uuid,
      combinefunc = min_uuid,
      parallel = safe,
      sortop = operator (<)
    );



  1. MySQL rækkefølge efter primær nøgle

  2. Flere datacenteropsætninger ved hjælp af Galera Cluster til MySQL eller MariaDB

  3. Er der en måde at vise Ja eller Nej i en resultatforespørgsel med 0 eller 1?

  4. Oracle Pro*C/OCI-installationshandlere til SIGSEGV/SIGABRT og venner - hvorfor og hvordan deaktiveres?