有没好的SQL语句实现功能
表 Test
ID Value
-------------------
A 2.0
A 3.0
A 2.5
A 2.3
B 1.3
B 1.6
C 1.7
C 1.8
C 2.2
产生如下结果
NewID A B C
1 2.0 1.3 1.7
2 3.0 1.6 1.8
3 2.5 2.2
4 2.3
表 Test
ID Value
-------------------
A 2.0
A 3.0
A 2.5
A 2.3
B 1.3
B 1.6
C 1.7
C 1.8
C 2.2
产生如下结果
NewID A B C
1 2.0 1.3 1.7
2 3.0 1.6 1.8
3 2.5 2.2
4 2.3
Case when ID='B' then Value else 0 end) as B,
Case when ID='C' then Value else 0 end) as C from Test order by ID
如果是的话,那么可以用以下的方法来处理
1. select distinct id from test order by id 获得所有的id.
2. 根据返回的结果来建立一系列的临时表,如 #temp1(id(identiey(1,1)), A),
#temp2(id(identiey(1,1)), B),...,并向每个表里加上相关的记录
3. 用Delphi动态生成一个巨大的查询语句,如select a.id, a.A,b.B,...n.N from #temp1 a,
...#tempn N where a.id*= b.id and a.id*= c.id ...不过这并不是一个好方法。建议你用一个2维数组来进行存放+一个查询(或者是一组查询),这样要简单得多.