我有一个部分表,共有 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