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

Oracleにコンマ(、)を追加する

    Oracleには、MySQLのGROUP_CONCATのような関数はありません。これは、まさにあなたが求めている機能です。 このような文字列集計のさまざまなオプションがこのページに用意されています -1つはカスタム関数を使用することです:

    CREATE OR REPLACE FUNCTION get_subjectkey (IN_PK IN MYTABLE.PRIMARY_KEY%TYPE)
    RETURN VARCHAR2
    IS
      l_text  VARCHAR2(32767) := NULL;
    BEGIN
    
      FOR cur_rec IN (SELECT subject_key 
                        FROM MYTABLE 
                       WHERE primary_key = IN_PK) LOOP
        l_text := l_text || ',' || cur_rec.ename;
      END LOOP;
    
      RETURN LTRIM(l_text, ',');
    END;
    

    次に、次のように使用します:

    SELECT get_subjectkey(?) AS subject_key
      FROM DUAL
    

    ...「?」を置き換える主キー値を使用します。

    以前

    列の値の最後にコンマを追加するだけの場合は、次を使用します。

    SELECT DISTINCT TO_CHAR(subject_key) || ','
      FROM MYTABLE
    

    二重パイプ-"||" --は、SQLで文字列を連結するためのOracle [、PostgreSQL、現在はANSI]の手段です。 TO_CHARを使用してデータ型を明示的に変換しましたが、次を使用できます:

    SELECT DISTINCT subject_key || ','
      FROM MYTABLE
    

    ...それが必要ない場合。



    1. mysql(ほぼ)完全な監査

    2. MySQLで大文字を小文字に変換する方法

    3. Oracle DML table_reference用のパーサーはありますか?

    4. ローカルのMySQLデータベースを使用してAndroidアプリを構築するにはどうすればよいですか?