从表
create table seeplai.item(
itm_id serial primary key,
itp_id int not null references seeplai.item_type,
itm_sq int2 not null default 10,
... )
create index item_itp_sq on seeplai.item( itp_id, itm_sq );
以item
记录为基础,我希望找到itp_sq
具有相同 itp_id
和itm_sq
更少的最伟大的。现在使用两个子查询,在语法和逻辑上都是正确的,但是感觉不对。
select max(itm_sq)
into v_prev_sq
from seeplai.item itm
where itm.itp_id = (select itp_id from seeplai.item where itm_id=p_itm_id)
and itm.itm_sq < (select itm_sq from seeplai.item where itm_id=p_itm_id);
我知道我使用了更好的方法,但它的语法已经融入了我的脑海