sql >> Databasteknik >  >> RDS >> Mysql

Mysql-funktion som returnerar ett värde från en fråga

Om vi ​​antar att dessa alla är generiska namn (tabell kommer inte att vara ett bra tabellnamn), är problemet att du inte kan använda ==för jämförelse. Du saknar också någon nyckelsyntax (DECLARE, SELECT INTO, etc.).

Ändra till detta:

CREATE FUNCTION func01(value1 INT , monto DECIMAL (10,2))
RETURNS DECIMAL(10,2)
DETERMINISTIC
BEGIN
  DECLARE var_name DECIMAL(10,2);
  SET var_name = 0;
  SELECT if(value1 = 1,monto *divisa_dolar,monto *divisa_euro) INTO var_name
    FROM table
    WHERE data_init = 1;
  RETURN var_name;
END

MySQL-jämförelsefunktioner och -operatörer

Relaterad fråga:Single Equals i MYSQL

Funktionshjälp:http://www. databasejournal.com/features/mysql/article.php/3569846/MySQL-Stored-Functions.htm




  1. ORACLE IIF uttalande

  2. SQL Server motsvarande Oracles CREATE OR REPLACE VIEW

  3. Välj skiftlägesokänslig med mysql, php och pdo

  4. SQLiteDatabase-fel, ohjälpsam logg