Comment creer et appeler une fonction sql..
Bonjour a tous,
J'essaie de créer une fonction qui prends comme paramètre un string, effectue des tests (if...elseif...else) avant de retourner un autre string....
J'ai éssayé ceci (je me suis basé sur un exemple trouvé par google)mais ça me renvoie une erreur 1064:
Citation:
CREATE FUNCTION test (s CHAR(50)) RETURNS CHAR(20)
DEFINE temp CHAR(50)
IF (s LIKE '%Bus%')
THEN LET temp = 'Bus';
ELSE IF (s LIKE '%Voiture%')
THEN LET temp = 'Voiture';
ELSE
THEN LET temp = 'Avion';
RETURN temp;
END FUNCTION;
et puis dans ma requête j'ai:
Citation:
SELECT nom, prenom, test(etat) AS moyen FROM fiche;
Merci d'avance pour votre aide
ceci est valable pour SQL SERVER
salut dans votre code il y a pas mal de trucs que je comprends pas:
1- le nom de la fonction doit être précéder par le nom du propriétaire de la bse de donnée:
exemple : dbo.test
2- un paramètre doit être précéder par @; exemple : @s
3- je comprends pas l'utlisation de LET : on utilise la mot clé SET
alors ta fonction doit avoir la forme suivante :
Code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
CREATE FUNCTION dbo.test (s CHAR(50))
RETURNS CHAR(20)
AS
begin
declare
temp CHAR(50)
begin
IF (s LIKE '%Bus%') THEN SET temp = 'Bus'
ELSE IF (s LIKE '%Voiture%') THEN SET temp = 'Voiture'
ELSE SET temp = 'Avion';
end
RETURN temp;
end |