我的表
工号 描述
001 电话
001 地址
001 电子邮件
002 电话
002 地址
怎么能转化成
工号 描述
001 电话,地址,电子邮件
002 电话,地址
转化成这样怎么转化 啊.
我的表
工号 描述
001 电话
001 地址
001 电子邮件
002 电话
002 地址
怎么能转化成
工号 描述
001 电话,地址,电子邮件
002 电话,地址
转化成这样怎么转化 啊.
下面的代码是可以完成的,用了游标,你如果看不懂再问吧,由于工作忙,没有怎么加注释,希望你能看懂哦.
--创建表
CREATE TABLE [TEMP] ( [GONG] [CHAR] (3) NULL , [MIAO] [VARCHAR] (10) NULL )
--插入数据
INSERT [TEMP] ( [GONG] , [MIAO] ) VALUES ( '001' , '地址' )
INSERT [TEMP] ( [GONG] , [MIAO] ) VALUES ( '001' , '电话' )
INSERT [TEMP] ( [GONG] , [MIAO] ) VALUES ( '001' , '电子邮件' )
INSERT [TEMP] ( [GONG] , [MIAO] ) VALUES ( '002' , '电话' )
INSERT [TEMP] ( [GONG] , [MIAO] ) VALUES ( '002' , '地址' )
--创建临时表
CREATE TABLE [#TEMP] ( [GONG] [CHAR] (3) NULL , [MIAO] [VARCHAR] (50) NULL )
--插入工号数据
INSERT INTO #TEMP (GONG)
SELECT DISTINCT GONG FROM TEMP
DECLARE GONGID CURSOR FOR
SELECT DISTINCT GONG FROM #TEMP
OPEN GONGID
DECLARE @CHR_GONG CHAR(3)
DECLARE @CHR_MIAO VARCHAR(30)
FETCH NEXT FROM GONGID INTO @CHR_GONG
WHILE @@FETCH_STATUS=0
BEGIN
SET @CHR_MIAO=''
SELECT @CHR_MIAO=@CHR_MIAO+MIAO+',' FROM TEMP
WHERE GONG=@CHR_GONG
UPDATE #TEMP SET MIAO=LEFT(@CHR_MIAO,LEN(@CHR_MIAO)-1)
WHERE GONG=@CHR_GONG
FETCH NEXT FROM GONGID INTO @CHR_GONG
END
CLOSE GONGID
DEALLOCATE GONGID
SELECT * FROM #TEMP
DROP TABLE #TEMP