类似的事情通常可以在Oracle中使用,但是在将其调整为在SQL Server上运行时遇到问题:
创建表mynewtbl AS
(
与
作为(从表1中选择col1,col2,col3),
b作为(从表2中选择col4,col5,col6)
选择col1,col4,col6
)
我知道我应该使用 SELECT INTO
语句,但是它不起作用。
这是我得到的错误:
关键字“ INTO”附近的语法不正确
请帮助
答案 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