对新表进行sql查询的结果

时间:2015-10-16 08:01:13

标签: sql sql-server-2005

在下面的sql查询中,当试图将该子查询的结果存储到新表t_test时,子查询成功执行。我收到错误

')'

附近的语法不正确
select * into t_test from
(select prm.RNumber,
case when pom.Category = 'Medicine'
    then pom.field
    end  as [Dept],
pop.branch
from tbl_pr_m prm join tbl_po_m pom on prm.rnumber = pom.rnumber
join tbl_po_p pop on prm.rnumber = prm.rnumber);

我可以知道,如何将结果存储到新表t_test。

2 个答案:

答案 0 :(得分:0)

您的原始外部查询似乎没有多大用处,因为您只是从内部查询中选择所有内容。您可以将其删除,然后使用SELECT ... INTO NewTable构造:

SELECT prm.RNumber, CASE WHEN pom.Category = 'Medicine' THEN pom.field END AS [Dept],
    pop.branch
INTO t_test
FROM tbl_pr_m prm JOIN tbl_po_m pom ON prm.rnumber = pom.rnumber
JOIN tbl_po_p pop ON prm.rnumber = prm.rnumber

请注意,如果表t_test已存在,则运行此查询时会出错。

答案 1 :(得分:0)

如果您确实要保留外部查询,则需要为内部查询指定一个名称作为表

select * into t_test from
(select prm.RNumber,
case when pom.Category = 'Medicine'
    then pom.field
    end  as [Dept],
pop.branch
from tbl_pr_m prm join tbl_po_m pom on prm.rnumber = pom.rnumber
join tbl_po_p pop on prm.rnumber = prm.rnumber) as originalResult;