Вам нужно сформулировать ограничение, так как значение столбца прихода равно выражению CASE
:
ALTER TABLE LabTest
ADD CONSTRAINT Category_CHK CHECK
(
Category = CASE WHEN Price BETWEEN 7 AND 20 THEN 1
WHEN Price BETWEEN 20 AND 50 THEN 2
WHEN Price BETWEEN 50 AND 100 THEN 3
WHEN Price BETWEEN 100 AND 350 THEN 4
ELSE 0 END
);
Примечание: диапазоны в вашем выражении CASE
фактически перекрываются, потому что BETWEEN
включительно на обоих концах.Итак, то, что вы написали, будет вести себя так же, как это:
CASE WHEN Price >= 7 AND Price <= 20 THEN 1
WHEN Price > 20 AND Price <= 50 THEN 2
WHEN Price > 50 AND Price <= 100 THEN 3
WHEN Price > 100 AND Price <= 350 THEN 4
ELSE 0 END
Если вышеописанное не так, как вы хотите обрабатывать граничные условия, то измените логику так, как вы хотите.