sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur väljer man minsta UUID med vänster yttre koppling?

Hittade en lösning, visar sig funktionen som jämför UUID från det här inlägget är inte korrekt. Här är funktionen jag skrev, som förmodligen är mindre presterande, som klarar alla fall den misslyckades med tidigare:

    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. hur sammanfogar man två kolumner till en med det befintliga kolumnnamnet i mysql?

  2. Skapa datum från dag, månad, år fält i MySQL

  3. MySQL:behålla serverns tidszon eller användarens tidszon?

  4. Konvertera värde från strängrepresentation i bas N till numeriskt