sql >> データベース >  >> RDS >> PostgreSQL

左外部結合で最小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. MySQLに行が存在しない場合に挿入する方法(UPSERT)

    2. PHPとMySQLでのタイムゾーンの処理

    3. ORA-00907:外部キーOracle12cの作成時に右括弧がありません

    4. Ubuntu 20.10 /Ubuntu20.04にApacheCassandraをインストールする方法