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 col1col1 col2
---------- -----------
a 1,2
b 1,2,3
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 col1col1 col2
---------- -----------
a 1,2
b 1,2,3
解决方案 »
- 这个截图是什么软件
- 求一sql语句
- 能不能用SQL server 连接VFP,然后操作VFP表的数据呢?
- 请问为什么安装了“SQLEXPR_TOOLKIT_CHS.EXE”没有分析服务项目
- 帮帮我!!!
- 关于批量更新的问题
- SQL单个表最大能有多大
- 有谁碰到过DTS在通过作业执行包时老失败的问题吗
- orace回滚段的问题?70万条数据,导出文件200M,回滚段设置问题?
- 如何实现计算数值的“三七作五,二舍八入”?
- 双机热备后才报的错,select error:dbprocess is dead or not enabled 用的是PB写的程序,SQL数据库,请问是什么原因
- 我如何查看最近谁访问过我哪些表?解决了给200分!
--函数
create function fn_c2(
@id int
)
returns varchar(200)
as
begin
declare @r varchar(200)
select @r=isnull(@r+',','')+c2 from table2 where fid=@id
return @r
end
go--查询
select c1,dbo.fn_c2(id) as c2 from table1