代码之家  ›  专栏  ›  技术社区  ›  user9399808

如何修改多个CASE语句

  •  2
  • user9399808  · 技术社区  · 8 年前

    又是我。我想问一下您对如何修改SELECT statament查询的意见。因此,基本上我创建了一个名为“Force Schedule2”的用户定义字段,如果该复选框是勾选(等于1),那么即使该项目在附表1中,它也会显示在附表2中。我该如何将其添加到现有的案例陈述中?

    我目前的选择声明是:

    SELECT
       CASE 
           WHEN 
               WorkOrder.DateCreated < 
               (
                 CASE 
                     WHEN 
                        (DATEPART(dw, dbo.ToBeScheduled_InProgress.Start) = 2) 
                     THEN 
                        (ToBeScheduled_InProgress.Start + 0.625) - 3 
                     ELSE 
                        (ToBeScheduled_InProgress.Start + 0.625) - 1 
                  END
               ) 
           THEN 
               1 
           ELSE 
               2 
       END 
    
       AS ScheduleTime
    

    我的用户定义的“Force Schedule2”字段是:

    dbo.AdditionalInfo.UserDefined3 AS ForceSched
    

    enter image description here

    1 回复  |  直到 8 年前
        1
  •  1
  •   Tom H    8 年前

    你的约会计划不太清楚。你可以做一些简单的事情,比如:

    CASE
        WHEN dbo.AdditionalInfo.UserDefined3 = 1
            THEN 2
        WHEN WorkOrder.DateCreated < (CASE WHEN (DATEPART(dw, dbo.ToBeScheduled_InProgress.Start) = 2) THEN (ToBeScheduled_InProgress.Start + 0.625) - 3 ELSE (ToBeScheduled_InProgress.Start + 0.625) - 1 END) 
            THEN 1 
        ELSE 2 
    END AS ScheduleTime
    

    基本上,它符合条件并退出语句。如果你翻转了它,那么你的日期操作是第一个,它会返回1,所以你仍然需要考虑你在case语句中输入内容的顺序。