超难的查询,请教各位英雄....
有下面的表 table1,里面的数据如下:
ID Company Employee
________________________________
1 IBM 员工1
2 IBM 员工2
3 IBM 员工3
4 联想 员工4
5 戴尔 员工5
6 戴尔 员工6
7 联想 员工7
8 联想 员工8
9 IBM 员工9
10 戴尔 员工10
要求,用SQL 查出如下面的结果
Company Employee
__________________________________
IBM 员工1,员工2,员工7,员工10
戴尔 员工3,员工8,员工9
联想 员工4,员工5,员工6
可用函数等. ... 请教各位大虾... 谢谢..
------解决方案--------------------例:
--处理的数据
CREATE TABLE tb(col1 varchar(10),col2 int)
INSERT tb SELECT 'a ',1
UNION ALL SELECT 'a ',2
UNION ALL SELECT 'b ',1
UNION ALL SELECT 'b ',2
UNION ALL SELECT 'b ',3
GO
--合并处理函数
CREATE FUNCTION dbo.f_str(@col1 varchar(10))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re= ' '
SELECT @re=@re+ ', '+CAST(col2 as varchar)
FROM tb
WHERE col1=@col1
RETURN(STUFF(@re,1,1, ' '))
END
GO
--调用函数
SELECT col1,col2=dbo.f_str(col1) FROM tb GROUP BY col1
--删除测试
DROP TABLE tb
DROP FUNCTION f_str
/*--结果
col1 col2
---------- -----------
a 1,2
b 1,2,3
--*/
GO
------解决方案--------------------http://community.csdn.net/Expert/topic/5690/5690492.xml?temp=.1814539