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

SQL - सिंगल कॉलम को कई कॉलम में विभाजित करें

डेटा की एकरूपता पर निर्भर करता है - मान लें कि एक ही स्थान कॉलम एक बनाम दो में आप जो दिखाना चाहते हैं, उसके बीच विभाजक है:

WITH TEST_DATA AS
  (SELECT 'LOREM IPSUM' COLUMN_A FROM DUAL)

SELECT SUBSTR(t.COLUMN_A, 1, INSTR(t.COLUMN_A, ' ')-1) AS COLUMN_A,
       SUBSTR(t.COLUMN_A, INSTR(t.COLUMN_A, ' ')+1) AS COLUMN_B
FROM test_data T;

आप REGEX के साथ नीचे दी गई क्वेरी का भी उपयोग कर सकते हैं:

WITH TEST_DATA AS
   (SELECT 'LOREM IPSUM' COLUMN_A FROM DUAL)

SELECT REGEXP_SUBSTR(t.COLUMN_A, '[^ ]+', 1, 1) COLUMN_A,
       REGEXP_SUBSTR(t.COLUMN_A, '[^ ]+', 1, 2) COLUMN_B
FROM test_data T;

Oracle 10g+ में रेगेक्स समर्थन है, जो आपको हल करने के लिए आवश्यक स्थिति के आधार पर अधिक लचीलेपन की अनुमति देता है। इसमें एक रेगेक्स सबस्ट्रिंग विधि भी है...

संपादित करें: 3 शब्द विभाजन:

WITH TEST_DATA AS
  (SELECT 'LOREM IPSUM DIMSUM' COLUMN_A FROM DUAL)

 SELECT REGEXP_SUBSTR(t.COLUMN_A, '[^ ]+', 1, 1) COLUMN_A,
     REGEXP_SUBSTR(t.COLUMN_A, '[^ ]+', 1, 2) COLUMN_B,
     REGEXP_SUBSTR(t.COLUMN_A, '[^ ]+', 2, 3) COLUMN_C
 FROM test_data T;

संदर्भ:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2927 आईडी की सूची में आने वाली सभी पंक्तियों का चयन करें

  2. अपने विभाग के औसत वेतन के साथ कर्मचारियों के वेतन को अद्यतन करने के लिए SQL

  3. ओरेकल एसक्यूएल में गतिशील धुरी - प्रक्रिया

  4. ग्रिडव्यू में Oracle डेटाबेस तालिका

  5. iBatis का उपयोग करके आप Oracle 10g XE db में सरणियाँ कैसे लिखते हैं?