if in_type=0 then
select max(meter_id) into maxmeter_id from ws_meter_info where unit_num=in_unit_num or serial_num=in_unit_num or trans_num=in_unit_num ;--or client_num=in_unit_num
end if;
if in_type=1 then
select max(meter_id) into maxmeter_id from ws_meter_info where trans_num=in_unit_num ;
end if;
if in_type=2 then
select max(meter_id) into maxmeter_id from ws_meter_info where serial_num=in_unit_num ;
end if;
if in_type=3 then
select max(meter_id) into maxmeter_id from ws_meter_info where client_num=in_unit_num;
end if;可以用一句话写就行了
if in_type > -1 and in_type < 4 then
select max(meter_id)
into maxmeter_id
from ws_meter_info
where ((unit_num = in_unit_num or serial_num = in_unit_num or
trans_num = in_unit_num) and in_type = 0)
or (trans_num = in_unit_num and in_type = 1)
or (serial_num = in_unit_num and in_type = 2)
or (client_num = in_unit_num and in_type = 3);
end if;
select max(meter_id) into maxmeter_id from ws_meter_info where unit_num=in_unit_num or serial_num=in_unit_num or trans_num=in_unit_num ;--or client_num=in_unit_num
end if;
if in_type=1 then
select max(meter_id) into maxmeter_id from ws_meter_info where trans_num=in_unit_num ;
end if;
if in_type=2 then
select max(meter_id) into maxmeter_id from ws_meter_info where serial_num=in_unit_num ;
end if;
if in_type=3 then
select max(meter_id) into maxmeter_id from ws_meter_info where client_num=in_unit_num;
end if;可以用一句话写就行了
if in_type > -1 and in_type < 4 then
select max(meter_id)
into maxmeter_id
from ws_meter_info
where ((unit_num = in_unit_num or serial_num = in_unit_num or
trans_num = in_unit_num) and in_type = 0)
or (trans_num = in_unit_num and in_type = 1)
or (serial_num = in_unit_num and in_type = 2)
or (client_num = in_unit_num and in_type = 3);
end if;
例子见:http://pages.videotron.com/orautils/pages/dbms_profile.htm