作者silver8250 ((阿信))
看板Database
标题[SQL ] M$SQL 2K 有办法在一次语法中取出来??
时间Fri Mar 28 18:58:36 2008
小弟又来发问了,目前使用是 M$ SQL 2K DB
我的表格长这样
table:A
pn item value
----------------------
A123 I01 100
A123 I02 500
A123 I03 200
B456 I01 50
B456 I03 20
... ... ...
小弟希望能够取出来的结果像这样
pn item_I01 item_I02 item_I03
--------------------------------------------------
A123 100 500 200
B456 50 NULL 20
原先我的 JAVA 程式作法是
1) 先取出所有不相同的 pn 结果集,也就是
SELECT distinct A.pn FROM A
2) 再分别对每个 pn 在到 table A 中取他的 I01,I02,I03 的值,
存到物件(JAVA程式)中
while (rs.next()) {
执行 SELECT A.value FROM A WHERE pn = ? AND item = 'I01'
执行 SELECT A.value FROM A WHERE pn = ? AND item = 'I02'
...
}
这样对於我目前要做的 JAVA 程式来说效能几乎差到不行
因为 table A 中有好几万笔资料,瓶颈在於上述的第2点
(因为要去跑 while-loop)
不知道各位先进们,有没有可以在一条 SQL 中达到我要期望的结果??
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.59.64.166