SQL Server与Oracle中的SELECT INTO

时间:2018-08-08 10:55:43

标签: sql sql-server oracle

类似的事情通常可以在Oracle中使用,但是在将其调整为在SQL Server上运行时遇到问题:

 创建表mynewtbl AS
(
  与
  作为(从表1中选择col1,col2,col3),
  b作为(从表2中选择col4,col5,col6)
  选择col1,col4,col6
)
 

我知道我应该使用 SELECT INTO 语句,但是它不起作用。

这是我得到的错误:

  

关键字“ INTO”附近的语法不正确

请帮助

2 个答案:

答案 0 :(得分:2)

SQL Server中的代码如下:

with a as (
      select col1, col2, col3 from table1
     ),
     b as (
      select col4, col5, col6 from table2
     )
select col1, col4, col6
into mynewtbl
from . . .;

无论数据库如何,您都需要一个from子句。

答案 1 :(得分:2)

认为,您想要类似...

; with
    a as ( select col1, col2, col3 from table1),
    b as ( select col4, col5, col6 from table2)
select col1, col4, col6
into mynewtbl
from a, b

(我认为这不是语法上有效的CTE,仅用于说明目的)

假设您正在使用SELECT,则应该只可以在INTO x子句之前直接放下FROM

如果您有一个有效的SELECT查询(返回表中想要的所有数据),并且由于某些UNION等而遇到问题,那么将其包装为子查询应该可以解决问题-将所有CTE放在首位。

所以不是

SELECT a FROM table1
UNION
SELECT b FROM table2

您有

SELECT *
INTO mytable
FROM (
    SELECT a FROM table1
    UNION
    SELECT b FROM table2
) results