sql >> Databasteknik >  >> RDS >> Oracle

Jag behöver bara fråga om priskoden om typ :=E

Närhelst du anropar en variabel med et-tecken, uppfattar relaterad sats den som en parameter. Du kan kalla det som en procedur eller funktion för att undertrycka ett sådant svar :

SQL> set serveroutput on;
SQL> CREATE OR REPLACE PROCEDURE MY_PROC( lv_price_num NUMBER, lv_type_txt VARCHAR2 ) IS
      lv_disc_num NUMBER(3,2);
    BEGIN 
      IF lv_type_txt = 'E' THEN
            IF    lv_price_num > 85 THEN
                  lv_disc_num := .20;
            ELSIF lv_price_num > 45 THEN
                  lv_disc_num := .15;
            ELSE  lv_disc_num := .10;
            END IF;
        ELSIF lv_type_txt = 'C' THEN
              lv_disc_num := .05;
        ELSE lv_disc_num := 0;
        END IF;
        DBMS_OUTPUT.PUT_LINE(lv_disc_num);
   END; 



  1. MYSQL Hur man använder trim i urvalsfrågan

  2. oracle bitand funktion

  3. Geolokaliseringsavstånd SQL från en stadstabell

  4. Definiera en variabel inom select och använd den inom samma select