Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle में अल्पविराम (,) जोड़ें

Oracle में MySQL के GROUP_CONCAT जैसा कोई फ़ंक्शन नहीं है, जो ठीक वही कार्यक्षमता है जिसे आप पूछ रहे हैं। इस पेज पर इस तरह के स्ट्रिंग एग्रीगेशन के लिए कई विकल्प दिए गए हैं - एक कस्टम फ़ंक्शन का उपयोग करना है:

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

डबल पाइप -- "||" -- Oracle [, PostgreSQL और अब ANSI] SQL में स्ट्रिंग्स को जोड़ने का साधन है। मैंने डेटा प्रकार को स्पष्ट रूप से परिवर्तित करने के लिए TO_CHAR का उपयोग किया था, लेकिन आप इसका उपयोग कर सकते थे:

SELECT DISTINCT subject_key || ','
  FROM MYTABLE

...यदि यह आवश्यक नहीं है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle को एक चुनिंदा खंड द्वारा परिभाषित डेटा खंड के लिए चेकसम मान मिलता है

  2. Oracle वेयरहाउस बिल्डर के साथ डेटा वेयरहाउसिंग ETL डेटा प्रोफाइलिंग

  3. जहां स्थिति pl/sql . के लिए एक सरणी के माध्यम से लूपिंग

  4. ओरेकल विशिष्ट अनुक्रम क्यों लौटाता है यदि 'ऑर्डरबी' मान समान हैं?

  5. ओरेकल में बल्क इंसर्ट के साथ टेक्स्ट फाइल डालें