首页 >数据库 >mysql教程 >Oracle中的Merge函数(批量更新/删除)

Oracle中的Merge函数(批量更新/删除)

WBOY
WBOY原创
2016-06-07 15:17:371737浏览

DEFINE TABLE : SCORE : using for save the students' score informations STUDENTS : the base information of students DEFINE COLUMNS : STUNO : the students' ID in theUniversity STUNAME : students' name COURSENAME : course name COURSESCORE : t

DEFINE TABLE :

    SCORE :  using for save the students' score informations

    STUDENTS : the base information of students

DEFINE COLUMNS :

    STUNO : the students' ID in the University

    STUNAME : students' name

    COURSENAME : course name

    COURSESCORE : the study-results of the reference course

    CLASSNAME : where the students study in

    STUGRADE : the students grade

    TERMNAME : the term which the reference course studied

NOW BEAGIN TO WRITE DOWN THE STATEMENT HERE BLOW THIS LINE !

 

MERGE INTO SCORE S

    USING

        (

            SELECT A.*,B.*,? MYSCORE FROM SCORE A,STUDENT B

            WHERE

                A.CLASSNO=? AND A.GRADE=?

                AND A.TERMNAME=? AND A.COURSENAME=?

                A.STUNO=B.STUNO(+)

        )X

    ON

        (S.STUNO=X.STUNO)

    WHEN

        MATHED

    THEN

        UPDATE SET COURSESCORE=X.MYSCORE

    WHEN

        NOT MATHED

    THEN

        INSERT

            (

                STUNO,STUNAME,COURSENAME,COURSESCORE,

                CLASSNAME,STUGRADE,TERMNAME

            )

        VALUES

            (

                X.STUNO,X.STUNAME,X.COURSENAME,X.MYSCORE,

                X.CLASSNAME,X.STUGRADE,X.TERMNAME

            );

 

注意到 MERGE 语句在最后的“;”(分号),这仅仅带到 MERGE 为一条完整的 SQL 语句。

 

 

[1] [2] 

Oracle中的Merge函数(批量更新/删除)

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn