sql 对新 table 查询的结果

Result of a sql query to a new table

在下面的 sql 查询中,子查询成功执行,当试图将该子查询的结果存储到新的 table t_test.I 时出现错误

')'附近的语法不正确

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);

请问如何将结果存储到新的 table t_test。

您原来的外部查询似乎没有多大用处,因为您只是从内部查询中选择所有内容。您可以删除它,然后使用 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

注意如果tablet_test已经存在,运行这个查询会报错

如果你真的想保留你的外部查询,你需要给内部查询一个名字作为 table

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;