where 子句查询(同列多条件)

A表

ID 项目 值 上传日期
100000001 产线号 1 2010-1-1
100000001 班次 A 2010-1-1
100000001 机型 F-16 2010-1-1
100000001 批号 3 2010-1-1
100000002 产线号 1 2010-1-1
100000002 班次 A 2010-1-1
100000002 机型 F-16 2010-1-1
100000002 批号 3 2010-1-1

。。。。。。。。。略。。。。。。。。。。。

100999999 产线号 2 2010-1-1
100999999 班次 B 2010-1-1
100999999 机型 F-12 2010-1-1
100999999 批号 4 2010-1-1

select fno,
max(decode(项目,'产线号',值))产线号,
max(decode(项目,'班次',值))班次,
max(decode(项目,'机型',值))机型,
max(decode(项目,'批号',值))批号
from A表 where ID='100000002'

显示如下:
ID 产线号 班次 机型 批号
100000002 1 A F-16 3

问题:
我想同时查询符合:产线号为2,班次为A,批号为4的记录,where子句该怎么写合适。

建立临时表处理吧,那样数据量会少些
第一步
create table xx select id,
max(decode(项目,'产线号',值))产线号,
max(decode(项目,'班次',值))班次,
max(decode(项目,'机型',值))机型,
max(decode(项目,'批号',值))批号
from A表 group by id;

第二步
select * from xx where xx.产线号=2 and xx.班次=A and xx.批号=4;

这样会减少查询次数

select * from (
select id,
max(decode(项目,'产线号',值))产线号,
max(decode(项目,'班次',值))班次,
max(decode(项目,'机型',值))机型,
max(decode(项目,'批号',值))批号
from A表 group by id
) where 产线号为2,班次为A,批号为4

楼上的做法很好 但是为什么外围要加max呢?能否请楼主解答一下?

//1行变列,查询出对应产品id属性
select id,
max(decode(项目,'产线号',值))产线号,
max(decode(项目,'班次',值))班次,
max(decode(项目,'机型',值))机型,
max(decode(项目,'批号',值))批号
from A表 order by id;
//2 在1基础上查询符合条件的
select * from (
select id,
max(decode(项目,'产线号',值))产线号,
max(decode(项目,'班次',值))班次,
max(decode(项目,'机型',值))机型,
max(decode(项目,'批号',值))批号
from A表 order by id)xx where xx.产线号=2 and xx.班次=A and xx.批号=4;