根据条件将值从另一个表插入一个表

时间:2020-12-29 13:27:24

标签: sql sql-server join create-table

所以我有一个 SQL 表,我在其中通过连接其他列并输入该表中的列值来输入值。

CREATE TABLE #temp_t (id INT, cname NVARCHAR(100), val INT, aid INT)
INSERT INTO #temp_t 
SELECT DISTINCT
ISNULL(IDXC.id, 0) id, sg.name + '-webApp' cName, 0 val, ag.ID aid
FROM spgroup sg
JOIN APPA APP ON sg.id > 1 AND sg.val & 4 = 0 AND APP.dagi = sg.id 
JOIN AIDBI XDI ON APP.bs = XDI.bsid
LEFT JOIN #IDXC ON IDXC.agpv = sg.id
WHERE IDXC.id IS NULL

现在在向表中插入值时,我需要检查 sysName 表中是否存在 sg.name 如果是,则 -webApp 需要替换为 -andApp 否则它仍然是 {{1 }}

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以在 EXISTS 表达式中使用 CASE

SELECT DISTINCT COALESCE(i.id, 0) as id,
       (sg.name +
        (CASE WHEN EXISTS (SELECT 1 FROM sysname sn WHERE sn.name = sg.name)
              THEN '-andApp' ELSE '-webApp'
         END)
       )  as cName,
       0 as val, ag.ID as aid
FROM spgroup sg JOIN
      APPA APP 
      ON sg.id > 1 AND (sg.val & 4) = 0 AND APP.dagi = sg.id  JOIN
      AIDBI XDI 
      ON APP.bs = XDI.bsid LEFT JOIN
      #IDXC i
      ON i.IDXCsgpv = sg.id
WHERE i.id IS NULL