Oracle中的如何对应Sqlserver的UNION ALL?
下面的如何改成Oracle的语句?SELECT DepotID, MLCode, MLName, PYCode, WBCode, UnitID, PDCode, PVCode, Spec, JobNumber, effdate, ClassID, PjPrice, PriceRate, LjPrice, '' AS shortname, '' AS snpycode, '' AS snwbcode, '' AS ZBCode, DepotAmountFROM dbo.MEMMLDepot AS aUNION ALLSELECT DepotID, MLCode, MLName, PYCode, WBCode, UnitID, PDCode, PVCode, Spec, JobNumber, effdate, ClassID, PjPrice, PriceRate, LjPrice, '' AS shortname, '' AS snpycode, '' AS snwbcode, '' AS ZBCode, 0 AS DepotAmountFROM dbo.MEMMaterial AS bWHERE (MLCode NOT IN (SELECT MLCode FROM dbo.MEMMLDepot AS c WHERE (b.DepotID = DepotID))) AND (UsesFlag = 1)
答案:MS-SQL SERVER的UNION ALL联接用法是和ORACLE的UNION ALL用法一样的,不用修改。
SELECT DepotID, MLCode, MLName, PYCode, WBCode, UnitID, PDCode, PVCode,
Spec, JobNumber, effdate, ClassID, PjPrice, PriceRate, LjPrice,
'' AS shortname, '' AS snpycode, '' AS snwbcode, '' AS ZBCode, DepotAmount
FROM dbo.MEMMLDepot AS a
UNION ALL
SELECT DepotID, MLCode, MLName, PYCode, WBCode, UnitID, PDCode, PVCode, Spec,
JobNumber, effdate, ClassID, PjPrice, PriceRate, LjPrice,'' AS shortname,
'' AS snpycode, '' AS snwbcode, '' AS ZBCode, 0 AS DepotAmount
FROM dbo.MEMMaterial AS b
WHERE MLCode NOT IN(SELECT MLCode
FROM dbo.MEMMLDepot AS c
WHERE b.DepotID = DepotID
)
AND UsesFlag =1
其他:SELECT A,B,C,D
FROM TABLE1
UNION ALL
SELECT E,F,G,H
FROM TABLE2 oracle也有 union all 语句
上一个:sqlserver2005中,我有一列是姓名和身份证号码放在一起的,身份证号码有的是15位有的是18位,如何分开来?
下一个:有什么好的方法实现oracle与SQLserver之间的数据库同步?