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

सिंगल टेबल के लिए मर्ज स्टेटमेंट का उपयोग करना

SELECT ... FROM DUAL का उपयोग करें USING . में आपके डेटा के साथ एक पंक्ति उत्पन्न करने के लिए क्लॉज:

SQL Fiddle

Oracle 11g R2 स्कीमा सेटअप :

create table student (
  sid int,
  name varchar(20),
  major varchar(10),
  gpa float,
  tutorid int,
  PRIMARY KEY (sid)
);

insert into student values(101,'Bill','CIS',3.45,102);
insert into student values(102,'Mary','CIS',3.1,null);
insert into student values(103,'Sue','Marketing',2.95,102);
insert into student values(104,'Tom','Finanace',3.5,106);
insert into student values(105,'Alex','CIS',2.75,106);
insert into student values(106,'Sam','Marketing',3.25,103);
insert into student values(107,'Joan','Finance',2.9,102);

क्वेरी 1 :

merge into student dst
using (
  SELECT 123 AS sid,
         'Rahul' AS name,
         'Temp' AS major
  FROM   DUAL
) src
on (src.major=dst.major)
when matched then
  update set name=src.name
when not matched then
  insert(SID,name,major) values ( src.sid, src.name, src.major )

प्रश्न 2 :

SELECT * FROM student

परिणाम :

| SID |  NAME |     MAJOR |    GPA | TUTORID |
|-----|-------|-----------|--------|---------|
| 101 |  Bill |       CIS |   3.45 |     102 |
| 102 |  Mary |       CIS |    3.1 |  (null) |
| 103 |   Sue | Marketing |   2.95 |     102 |
| 104 |   Tom |  Finanace |    3.5 |     106 |
| 105 |  Alex |       CIS |   2.75 |     106 |
| 106 |   Sam | Marketing |   3.25 |     103 |
| 107 |  Joan |   Finance |    2.9 |     102 |
| 123 | Rahul |      Temp | (null) |  (null) |



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल पीएल/एसक्यूएल प्रक्रिया के प्रारंभ खंड के बाद कर्सर कैसे घोषित करें

  2. SQL डेवलपर का उपयोग करके बड़ी मात्रा में डेटा कैसे निर्यात करें - Oracle

  3. स्प्रिंग JDBC JDBC ड्राइवर वर्ग को लोड नहीं कर सका [oracle.jdbc.driver.OracleDriver]

  4. SSRS में Oracle संग्रहीत कार्यविधि निष्पादित करते समय त्रुटि:PLS-00306:कॉल करने के लिए गलत संख्या या तर्कों के प्रकार

  5. ORA-00933:एकाधिक पंक्तियों को सम्मिलित करते समय SQL कमांड ठीक से समाप्त नहीं हुआ