在SQL中如何把组合字段

来源:百度知道 编辑:UC知道 时间:2024/04/29 05:16:34
当我查询出一个结果之后:
col1 col2 col3
2 3 4
2 3 5
2 3 6
而我想要的结果是:
col1 col2 col3
2 3 4,5,6

请各位大侠解惑

oracle中可以:
select col1,col2,substr(max(sys_connect_by_path(col3,',')),2) col3
(select col1,col2,col3,row_number()over(partition by col1,col2 order by col3) id from 表名)
start with id = 1
connect by prior id = id -1 and prior col1=col1 and prior col2 = col2
group by col1,col2;
***************************
SqlServer中还在研究,抱歉。
---
以上,希望对你有所帮助。

CREATE FUNCTION dbo.f_str(@col1 int,@col2 int)
RETURNS varchar(8000)
AS
BEGIN
DECLARE @r varchar(8000)
SET @r = ''
SELECT @r = @r + ',' + value FROM tb WHERE col1=@col1 and col2=@col2
RETURN STUFF(@r, 1, 1, '')
END
GO
-- 调用函数
SELECt col1,col2, col3= dbo.f_str(col1,col2) FROM tb GROUP BY col1
好久没用SQL了,也没安装,所以没有调试过,不知道正确不正确。但希望对你有所帮助
原理就是,先group by 然后 将col3以字符串的形式相加。

在2005中可以用C#自定义聚合函数。或者用临时表

到目前位置我所知道的结构化查询语言SLQ还不能直接支持你想要的结果。

可以通过中间表实现:
通过循环将查询的结果插入的中间表中