あなたが望むものを表現するためのより良い方法を見つけるべきですが、私は次のことが近いと思います:
select concat_wc(',', substring_index(substring_index(entry_value, '"', 2), '"' -1),
substring_index(substring_index(entry_value, '"', 4), '"' -1),
. . .
)
文字列内の値の数に値の数に基づいて停止条件を設定する必要がある場合があります。その結果、次のようになります。
select concat_ws(',',
case when num_entry_values >= 1 then substring_index(substring_index(entry_value, '"', 2), '"' -1) end,
case when num_entry_values >= 2 then substring_index(substring_index(entry_value, '"', 4), '"' -1) end,
. . .
)
この数がない場合は、文字列内の二重引用符の数を数えることで計算できます。
編集:
エントリ数をカウントするには、"
をカウントします :
from (select aev.*,
(length(entry_value) = length(replace(entry_value, '"', '')) ) / 2 as num_entry_values
from ch_arf_entry_values aev
) aev