嗨,我正在尝试编写多个案例陈述来预设作业的优先级.有一些表和ID涉及到这一点,但基本上我想检查作业是否存在,如果它与如果相关的问题是80,然后有多个案例状态,以便如果作业次要类别是1然后答案将是High的ID.到目前为止我所做的代码可以解释得更好......
ALTER Procedure [dbo].[usp_CreatePresetPriority]
@HelpdeskID int,
@MinorCategoryID int
As
BEGIN
IF EXISTS(SELECT * FROM TicketInformation WHERE TicketID = @HelpdeskID AND QuestionID = 80)
BEGIN
UPDATE TicketInformation
SET AnswerInput = Null,
AnswerID = CASE @MinorCategoryID WHEN 87 THEN 129 END
WHERE TicketID = @HelpdeskID And QuestionID = 80
END
ELSE
BEGIN
INSERT INTO TicketInformation (TicketID, QuestionID, AnswerID, AnswerInput)
VALUES (@HelpdeskID, 80, CASE @MinorCategoryID WHEN 87 THEN 129 END, Null)
END
Run Code Online (Sandbox Code Playgroud)
所以这只适用于一个选项 - 其中@MinorCategoryID = 87我希望有超过1个语句设置@MinorCategoryID,而91THEN 130等...
我试过了...
IF EXISTS(SELECT * FROM TicketInformation WHERE TicketID = @HelpdeskID AND QuestionID = 80)
UPDATE TicketInformation SET AnswerInput = Null, AnswerID = CASE @MinorCategoryID WHEN 87 THEN 129 WHERE TicketID = @HelpdeskID And QuestionID = 80
ELSE INSERT INTO TicketInformation (TicketID, QuestionID, AnswerID, AnswerInput) VALUES (@HelpdeskID, 80, CASE @MinorCategoryID WHEN 87 THEN 129 END, Null)
IF EXISTS(SELECT * FROM TicketInformation WHERE TicketID = @HelpdeskID AND QuestionID = 80)
UPDATE TicketInformation SET AnswerInput = Null, AnswerID = CASE @MinorCategoryID WHEN 91 THEN 130 WHERE TicketID = @HelpdeskID And QuestionID = 80
ELSE INSERT INTO TicketInformation (TicketID, QuestionID, AnswerID, AnswerInput) VALUES (@HelpdeskID, 80, CASE @MinorCategoryID WHEN 91 THEN 130 END, Null)
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏 - 抱歉,如果不清楚我有一个星期五模糊的头!
Car*_*lla 13
您可以将其分配给变量,然后只需插入变量.
ELSE
BEGIN
SELECT @MinorCategoryID = CASE
WHEN @MinorCategoryID = 87 THEN 129
WHEN @MinorCategoryID = 91 THEN 130
-- more cases here
ELSE NULL
END
INSERT INTO TicketInformation (TicketID, QuestionID, AnswerID, AnswerInput)
VALUES (@HelpdeskID, 80, @MinorCategoryID, Null)
END
Run Code Online (Sandbox Code Playgroud)
或者通过选择更改值()
ELSE
BEGIN
INSERT TicketInformation (TicketID, QuestionID, AnswerID, AnswerInput)
SELECT @HelpdeskID,
80,
CASE
WHEN @MinorCategoryID = 87 THEN 129
WHEN @MinorCategoryID = 91 THEN 130
-- more cases here
ELSE NULL
END,
Null
END
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33475 次 |
| 最近记录: |