もっと言えば、SQLでデータを取得した時点でカンマ区切りのデータになっていれば、手を入れることなく解決する。 Oracleでカンマ区切りのデータを出力するには「TO_CHAR」を使用する. Where句のINにSQLで取得した結果を直接利用したりするのに、SQLServerで複数件存在するデータを1行のカンマ区切りのデータとして取得して見ます。 (残念ですがOracleやMySQLなどではこの方法は通用しません。) 取得 で、やりたいこと [ORACLE関数] 現在日時を取得する(sysdate、systimestamp) 1,745件のビュー [SQL] WHERE句で範囲指定をする(BETWEEN) 1,727件のビュー [ORAエラー] ORA-00979: GROUP BYの式ではありません。 1,698件のビュー [ORAエラー] ORA-00905: キーワードがありません。 1,629件のビュー 例3) 数値「1234567.334」をカンマ(,)と円マークで編集した文字列に変換します。 SQL> select 2 to_char( 1234567.334, 'L999G999G999D99' ) 複数行を連結してまとめる 集約関数「listagg」複数行を連結して1行にすることができます。しかもデリミタを指定することができるのでカンマ区切り等にして出力することも容易です。集約関数「listagg」の基本構文 引数 説明 SQLの取得結果をカンマ区切りで取得. 使い方は、 select to_char(20000,'99G999') from dual; こんな感じ。 結果は以下。 カンマ区切りのデータのリストをマスタテーブルにある日本語に変換して表示させたいのですが…。 解決済 Oracle SQLにおいて最終値+1の値から連番を振りたい
sqlでfrom句に複数テーブルを記載し、テーブル同士の結合条件(onやwhereを用いる)を記載しない場合、取得できるレコードはどのようなものになるでしょうか? SELECT * FROM Aテーブル , Bテーブル※自分で調べた限りだと、「CROSS JOIN」もしくは「NAT 「story_idごとにcategory_nameをカンマ区切りで表示したい。」 そんな時あると思います! そんな時は・・・ ARRAY_TO_STRING(カラム, ‘,’) =配列を「,」区切り文字列にする ・・・ 「カラム, カラム, カラム」こんな感じになる。ウオー .