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

Array_appendを使用すると、PostgreSQL関数の作成時に構文エラーが発生します

    詳細なマニュアル から :

    したがって、array_append 配列を返し、その戻り値を何かに割り当てる必要があります。また、array_to_stringが必要だと思います array_to_textではなく、関数の最後に 。そしてprimes は配列なので、array_append(primes, mycount)が必要です primesのエントリに追加しようとするのではなく 。

    CREATE OR REPLACE FUNCTION primes (IN integer) RETURNS TEXT AS $$
    DECLARE
        counter INTEGER = $1; 
        primes int []; 
        mycount int; 
    BEGIN
        WHILE counter != 0 LOOP 
            mycount := count(primes); 
            primes  := array_append(primes, mycount);
            counter := counter - 1; 
        END LOOP;
        RETURN array_to_string(primes, ',');   
    END;   
    $$ LANGUAGE 'plpgsql';
    

    何を意図しているのかわかりませんmycount := count(primes); つまり、mycount := array_length(primes, 1);と言うつもりだったのかもしれません。 primesで連続する整数のシーケンスを取得できるようにします 。




    1. plpgsqlのトリガー関数の複数の列を更新します

    2. mysqlクエリでピボット

    3. 1つのテーブル、2つの列のMYSQLクエリチャレンジ

    4. JavaリストからSQL配列を作成するにはどうすればよいですか?