2017-09-22 1 views
2

Ich bin ein Anfänger im SQL-Bereich, derzeit arbeitet an einem eigenen Projekt. Ich versuche, eine Einschränkung für eine Spalte hinzuzufügen, damit ich verschiedene Werte für verschiedene (2) Fälle anzeigen kann. Meine Spalten sind, wie folgt:Hinzufügen von Constraint mit CASE WENN DANN

DATA DATE  
NR_SLIDE NUMBER 
TOTAL NUMBER 
NR_ZILE NUMBER 
ID_C NUMBER 
ID_F NUMBER 
COST_SLIDE NUMBER 

Grundsätzlich muss ich mit zwei Optionen Gesamt anzuzeigen: 1. wenn nr_slide> 10 Ich brauche einen Rabatt von 5 2. wenn nr_slide < = 10 zu machen, Kein Rabatt.

Mein Code Versuch (letzte) sieht wie folgt aus:

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); 

Ich erhalte die Meldung:

ORA-01735: ungültiger ALTER TABLE Option

Könnten Sie hilf mir, dieses Problem zu beheben? Könnte es etwas geben, das ich vorher nicht definiert habe? Vielen Dank!

Antwort

1

Ich glaube, Sie wollen:

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) 
      ); 

Sie können NULL Werte berücksichtigen als auch nehmen.

Verwandte Themen