1

只是一个简单的问题。是否可以在表格中选择一列和一个自定义值。我有一个软件表和一个已安装软件表。我正在使用其安装的机器的域角色值来指定服务器或 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

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

4

2 回答 2

3

尝试这个 -

INSERT INTO tblSoftware (SoftwareName, SoftwareType)
SELECT
       SoftwareName
     , CASE WHEN Type = 'PC' 
          THEN 1 
          ELSE '2'
       END AS Type
FROM tbl2
WHERE domainRole > 1
于 2013-07-19T09:02:59.723 回答
0

试试去掉括号

插入 tbl 软件
            (软件名称,
             软件类型)
选择软件名称,
       案子
         当类型 = 'PC' THEN 1
         否则'2'
       END AS 类型
来自 tbl2
WHERE domainrole > 1
于 2013-07-19T09:00:28.820 回答