INSERT INTO表列和值

时间:2013-07-19 08:51:42

标签: sql sql-server

只是一个简单的问题。是否可以在表格中选择列和自定义值。我有一个软件表和一个已安装软件的表。我正在使用其安装的计算机的域角色值来指定服务器或PC的软件类型。但是有多种类型的服务器和PC,我想将这些值提炼成一个可以链接到另一个表的数值。例如,结果将是

¦SoftwareName¦SoftwareType¦     ¦DomainRoleID¦Type  ¦
¦SofWare1    ¦1           ¦     ¦1           ¦PC    ¦
¦SofWare2    ¦2           ¦     ¦2           ¦Server¦
¦SofWare3    ¦1           ¦
¦SofWare4    ¦2           ¦

由于我需要从表中选择多个记录并插入不同的类型值,我想知道是否可以在insert into子句中执行此操作,就像

一样
INSERT INTO tblSoftware (SoftwareName, SoftwareType)
SELECT (SoftwareName, '2')
FROM tbl2
WHERE domainRole > 1

这是否可能,或者我需要在获取数据后执行更新? 提前谢谢!

2 个答案:

答案 0 :(得分:3)

试试这个 -

INSERT INTO tblSoftware (SoftwareName, SoftwareType)
SELECT
       SoftwareName
     , CASE WHEN Type = 'PC' 
          THEN 1 
          ELSE '2'
       END AS Type
FROM tbl2
WHERE domainRole > 1

答案 1 :(得分:0)

尝试删除括号

INSERT INTO tblsoftware 
            (softwarename, 
             softwaretype) 
SELECT softwarename, 
       CASE 
         WHEN type = 'PC' THEN 1 
         ELSE '2' 
       END AS Type 
FROM   tbl2 
WHERE  domainrole > 1 
相关问题