PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara memilih UUID minimum dengan gabungan luar kiri?

Menemukan solusi, ternyata fungsi membandingkan UUID dari postingan ini tidak benar. Inilah fungsi yang saya tulis, yang mungkin kurang berkinerja, yang melewati semua kasus yang gagal sebelumnya:

    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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL LIMIT vs. Pernyataan JDBC setMaxRows. Mana yang lebih baik?

  2. SELECT memunculkan pengecualian dalam fungsi PL/pgSQL

  3. Bagaimana cara menyiapkan terowongan SSH di Google Cloud Dataflow ke server database eksternal?

  4. Cara Memeriksa Versi PostgreSQL Anda

  5. Vertx JDBC client queryWithParams - bagaimana cara menambahkan daftar?