आप जो चाहते हैं उसका प्रतिनिधित्व करने के लिए आपको एक बेहतर तरीका खोजना चाहिए, लेकिन मुझे लगता है कि निम्नलिखित करीब आता है:
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