यदि आप केवल 11.1 के बजाय 11.2 पर हैं, तो आप LISTAGG
. का उपयोग कर सकते हैं कुल कार्य
SELECT listagg( interval, ',' )
WITHIN GROUP( ORDER BY interval )
FROM (SELECT DISTINCT range AS interval
FROM table_name
WHERE age = 62)
यदि आप Oracle के पुराने संस्करण का उपयोग कर रहे हैं, तो आप अन्य में से किसी एक का उपयोग कर सकते हैं। Oracle स्ट्रिंग एकत्रीकरण तकनीक टिम हॉल के पेज पर। 11.2 से पहले, मेरी निजी प्राथमिकता एक उपयोगकर्ता-परिभाषित बनाना होगा समग्र कार्य ताकि आप तब कर सकें
SELECT string_agg( interval )
FROM (SELECT DISTINCT range AS interval
FROM table_name
WHERE age = 62)
हालांकि, यदि आप कोई फ़ंक्शन नहीं बनाना चाहते हैं, तो आप ROW_NUMBER और SYS_CONNECT_BY_PATH दृष्टिकोण हालांकि इसका पालन करना थोड़ा कठिन हो जाता है
with x as (
SELECT DISTINCT range AS interval
FROM table_name
WHERE age = 62 )
select ltrim( max( sys_connect_by_path(interval, ','))
keep (dense_rank last order by curr),
',') range
from (select interval,
row_number() over (order by interval) as curr,
row_number() over (order by interval) -1 as prev
from x)
connect by prev = PRIOR curr
start with curr = 1