首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

超难的查询,英雄.

2012-03-16 
超难的查询,请教各位英雄....有下面的表table1,里面的数据如下:IDCompanyEmployee_______________________

超难的查询,请教各位英雄....
有下面的表   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

热点排行
Bad Request.