当前位置:数据库 > SQLServer >>

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之间的数据库同步?

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,