Sql 两个数据之间的情况

Sql 两个数据之间的情况,sql,constraints,case,between,Sql,Constraints,Case,Between,嗨,我必须在这种情况下定义一个约束 [driver_surcharge_to] [tinyint] NULL CONSTRAINT CK_Vehicle_driverSurchargeTo CHECK ( 1 = case driver_surcharge_from when null case driver_age_to when null then 1 else 0

嗨,我必须在这种情况下定义一个约束

    [driver_surcharge_to] [tinyint] NULL CONSTRAINT CK_Vehicle_driverSurchargeTo CHECK (
        1 = case driver_surcharge_from
        when null
            case driver_age_to
                when null then 1
                else 0 end
        else
        case driver_age_to
                when null then 0
                when (driver_age_to) between 16 and 99 then 1
                else 0 end
    end),
我已经试着将相同的名称字段放在一起,不管有没有它,我都不会工作。(括号)

我如何声明一个案例来验证两个数字之间的值

谢谢。

您想使用
案例的“条件”形式

[driver_surcharge_to] [tinyint] NULL CONSTRAINT CK_Vehicle_driverSurchargeTo CHECK (
    1 = case driver_surcharge_from
    when null
        case driver_age_to
            when null then 1
            else 0 end
    else
    case when driver_age_to is null then 0
         when driver_age_to between 16 and 99 then 1
         else 0 end
end),
不过,我认为以下逻辑要简单一些:

[driver_surcharge_to] [tinyint] NULL CONSTRAINT CK_Vehicle_driverSurchargeTo CHECK (
    (driver_surcharge_from is null and driver_age_to is null) or
    (driver_surcharge_from is not null and driver_age_to between 16 and 99 )
)