sql >> Database >  >> RDS >> PostgreSQL

Hoe minimum UUID selecteren met left outer join?

Een oplossing gevonden, blijkt dat de functie UUID's vergelijkt van dit bericht klopt niet. Dit is de functie die ik heb geschreven, die waarschijnlijk minder goed presteert, en die alle gevallen doorstaat waarin hij eerder faalde:

    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. Ontsnappende tekens zoals $ en % | MySQL en PHP

  2. Wat is het equivalent van SQL Server APPLY in Oracle?

  3. Ingewikkelde voetbalcompetitie Dynamisch bestellen in MySQL?

  4. negeer regex-patroon in mysql