我是SQL领域的初学者,目前正在开发自己的项目。 我试图在列上添加约束以帮助我显示不同(2)个案例的不同值。 我的专栏如下:
DATA DATE
NR_SLIDE NUMBER
TOTAL NUMBER
NR_ZILE NUMBER
ID_C NUMBER
ID_F NUMBER
COST_SLIDE NUMBER
基本上我需要显示总数有两个选项: 1.当nr_slide> 10时我需要打折5 2.当nr_slide <= 10时,没有折扣。
我的代码尝试(最后一个)看起来像这样:
ALTER Table Factura f
add CONSTRAINT ck_total CHECK (
CASE
WHEN nr_slide>10
THEN total=(nr_slide*cost_slide*nr_zile-5)
ELSE total=(nr_slide*cost_slide*nr_zile)
END = nr_slide);
我收到的消息是:
ORA-01735:ALTER TABLE选项无效
你能帮我解决这个问题吗?可能有一些我以前没有定义过的东西? 谢谢!
答案 0 :(得分:1)
我想你想要:
ALTER Table Factura f
ADD CONSTRAINT ck_total
CHECK ( (nr_slide > 10 AND nr_slide = nr_slidecost_slidenr_zile - 5) OR
(nr_slide <= 10 AND nr_slide = nr_slide* cost_slide * nr_zile)
);
您可能还需要考虑NULL
个值。