-2

我有一个部分表,共有 6 个部分。我想根据该部分插入不同的状态。所以基本上如果 Sectionid = 1,2,5,6 那么状态将插入 1 否则如果该部分是 3,4 那么状态将插入一个 0。我需要这个来为所有 6 个部分插入一个状态。我尝试使用 case 语句,但这不起作用。

Section::

sectionkey int
sectionint int

sectionkey  sectionint
   1            1
   2            2
   3            3
   4            4

Status

statuskey int
statusint int
sectionint int

期望的输出:

    statuskey  statusint sectionint
      1            0          1
      2            0          2
      3            1          3
      4            1          4

我希望能够将让我们说第 1 节和第 2 节插入状态表并使状态为 0,但也将第 3 节和第 4 节插入状态表但在一个语句中使它们的状态等于 1。

   DECLARE @SECTION int
   DECLARE @STATUS int
   --SET @SECTIONID = (SELECT SECTIONID FROM Section)

   SELECT CASE @STATUS 
   WHEN (SELECT SECTIONID FROM Section WHERE SECTIONID IN(1,2,5,6)) THEN '0' ELSE WHEN (SELECT SECTIONID FROM Section WHERE SECTIONID IN(3,4)) THEN '1' END END
   BEGIN
   INSERT INTO Checklist ("SECTIONID", "STATUS", "USERID")
   SELECT s.SECTIONID,@STATUS, @USER
   FROM SECTION as s 
   END
4

1 回答 1

1
insert into Checklist("SECTIONID","STATUS","USERID")
    (select SECTIONID, (case when SECTIONID in(1,2,5,6) Then 0 Else 1 END), @USER
    from Section)
于 2013-09-08T13:22:29.750 回答