Problema con una función (dni)
Publicado por christian (1 intervención) el 25/02/2018 11:34:03
Hola chicos este es mi primer post y espero que me podais ayudar con un problema que tengo en un ejercicio, se me ha pedido crear una función almacenada en MySQL que se le pase como parámetro el NIF (DNI+Letra) tipo fijo de 9 caracteres y que devuelva el valor de 1 si el número del posible DNI lleva asociada su letra correspondiente o devuelva 0 si el número de DNI lleva asociada una letra incorrecta.
Este es el codigo que tengo pero no me compila:
Este es el codigo que tengo pero no me compila:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
DELIMITER $$
DROP function IF EXISTS actividad1$$
create function actividad1 (dni INT(8), let varchar(1)) returns int(1)
begin
declare letra varchar(100);
if (dni%23) = '0' then
set letra = 't';
elseif (dni%23) = '1' then
set letra='r';
elseif (dni%23) = '2' then
set letra='w';
elseif (dni%23) = '3' then
set letra='a';
elseif (dni%23) = '4' then
set letra='g';
elseif (dni%23) = '5' then
set letra='m';
elseif (dni%23) = '6' then
set letra='y';
elseif (dni%23) = '7' then
set letra='f';
elseif (dni%23) = '8' then
set letra='p';
elseif (dni%23) = '9' then
set letra='d';
elseif (dni%23) = '10' then
set letra='x';
elseif (dni%23) = '11' then
set letra='b';
elseif (dni%23) = '12' then
set letra='n';
elseif (dni%23) = '13' then
set letra='j';
elseif (dni%23) = '14' then
set letra='z';
elseif (dni%23) = '15' then
set letra='s';
elseif (dni%23) = '16' then
set letra='q';
elseif (dni%23) = '17' then
set letra='v';
elseif(dni%23) = '18' then
set letra='h';
elseif (dni%23) = '19' then
set letra='l';
elseif (dni%23) = '20' then
set letra='c';
elseif (dni%23) = '21' then
set letra='k';
elseif (dni%23) = '22' then
set letra='e';
end if;
return letra;
if letra = let return '1'
else return '0';
end;$$
Valora esta pregunta
0