還有一種方法,但要在表中加入一個字段才可以實現。。。。
表t_test
id name orderid
1001 aa 1
1001 bb 2
1001 cc 3
1005 aa 1
1005 bb 2
1005 cc 3
1005 dd 4
SELECT k.id, isnull(A.name,'')+','+isnull(B.name,'')+','+isnull(C.name,'') as name
FROM
(SELECT DISTINCT id FROM t_test ) AS k
left JOIN
(Select id, name From t_test Where Orderid = 1 ) AS A
ON k.id = A.id
LEFT JOIN
(Select id, name From t_test Where Orderid = 2 ) AS B
ON k.id = B.id
LEFT JOIN
(Select id, name From t_test Where Orderid =3 ) AS C
ON k.id = C.id
....................
LEFT JOIN
(Select id, name From t_test Where Orderid =n ) AS n
ON k.id = n.id
表t_test
id name orderid
1001 aa 1
1001 bb 2
1001 cc 3
1005 aa 1
1005 bb 2
1005 cc 3
1005 dd 4
SELECT k.id, isnull(A.name,'')+','+isnull(B.name,'')+','+isnull(C.name,'') as name
FROM
(SELECT DISTINCT id FROM t_test ) AS k
left JOIN
(Select id, name From t_test Where Orderid = 1 ) AS A
ON k.id = A.id
LEFT JOIN
(Select id, name From t_test Where Orderid = 2 ) AS B
ON k.id = B.id
LEFT JOIN
(Select id, name From t_test Where Orderid =3 ) AS C
ON k.id = C.id
....................
LEFT JOIN
(Select id, name From t_test Where Orderid =n ) AS n
ON k.id = n.id
[此贴子已经被作者于2007-9-11 20:49:29编辑过]