PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да избера минимален UUID с ляво външно съединение?

Намерих решение, оказа се, че функцията сравнява UUID от тази публикация не е правилно. Ето функцията, която написах, която вероятно е по-малко производителна, която пропуска всички случаи, в които е била неуспешна преди:

    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. Как да вмъкнете в масив в PostgreSQL

  2. Как мога да слея колоните от две таблици в един изход?

  3. PL/pgSQL контролни структури за списъци / масиви

  4. Как мога да съпоставя последните две думи в изречение в PostgreSQL?

  5. СЛУШАЙТЕ времето за изчакване на заявката с node-postgres?