pl-sql等效于临时表上的t-sql“UPDATE FROM”子句

时间:2016-03-28 06:18:41

标签: tsql plsql sql-server-2014 oracle12c

在SQL Server存储过程中,我有以下代码:

UPDATE #tbinforesult
SET prifix = ''
FROM #tbmax t
    INNER JOIN #tbinforesult i 
        ON i.prifix = t.prifix
            AND i.PropertyID = t.PropertyID
            AND i.GroupID = t.GroupID
            AND i.NID <> t.id

pl-sql与pl-sql集合中的等价物是什么,而不是全局临时表?

1 个答案:

答案 0 :(得分:1)

TSQL:

UPDATE
    Table_A
SET
    Table_A.col1 = Table_B.col1,
    Table_A.col2 = Table_B.col2
FROM
    Some_Table Table_A
INNER JOIN
    Other_Table Table_B
ON
    Table_A.id = Table_B.id
WHERE
    Table_A.col3 = 'cool'

PLSQL:

UPDATE table1 t1
   SET (name, desc) = (SELECT t2.name, t2.desc
                         FROM table2 t2
                        WHERE t1.id = t2.id)
 WHERE EXISTS (
    SELECT 1
      FROM table2 t2
     WHERE t1.id = t2.id )

OR:

UPDATE (SELECT t1.id, 
               t1.name name1,
               t1.desc desc1,
               t2.name name2,
               t2.desc desc2
          FROM table1 t1,
               table2 t2
         WHERE t1.id = t2.id)
   SET name1 = name2,
       desc1 = desc2

消息来源:enter link description here