Home >Database >Mysql Tutorial >Oracle中的Merge函数(批量更新/删除)

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

WBOY
WBOYOriginal
2016-06-07 15:17:371737browse

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函数(批量更新/删除)

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn