sql语句 多表查询列转行(并分组)

来源:百度知道 编辑:UC知道 时间:2024/07/08 01:38:37
多行记录和平为一行SQL(多表查询)

问题描述:
表:TAB_INFORMATION_KEYWORD (以下简称t1)
含有3个字段:
AUTOID INFORMATION_ID TAB_KEYWORD_DICTIONARY_ID
1 2 1
2 4 1
3 6 2
表: TAB_KEYWORD_DICTIONARY (以下简称t2)
含有3个字段
AUTOID KEYWORD KEYWORD_EN
1 中国 zg
2 欢迎 hy

所求结果: 这个查询结果关联到这2个表 ,所需要的结果如下
( t2) KEYWORD_EN (t1) INFORMATION_ID
zg 2,4
hy 6

问题就把理应多行记录合并为1行,并分组.(2个表查询)
希望大大们帮下我,我整了1天了. 在线等! 感激不尽
百度自动把我问题中的空格去掉了. AUTOID INFORMATION_ID TAB_KEYWORD_DICTIONARY_ID
分别为 1,2,1 如此类推. 看的都费劲啊. 大家理解了我的意思了吧?

创建一个自定函数
CREATE Function Cv1(@Col1Val varchar(500))
RETURNS VARCHAR(800)
AS
BEGIN
DECLARE @RetVal varchar(800)
SET @RetVal = ''
SELECT @RetVal = INFORMATION_ID + ',' + @RetVal FROM TAB_INFORMATION_KEYWORD WHERE TAB_KEYWORD_DICTIONARY_ID=@Col1Val order by AUTOID
IF LEN(@RetVal) > 0
SET @RetVal = LEFT(@RetVal, LEN(@RetVal) - 1)
RETURN @RetVal
END
GO

查询:
SELECT *,dbo.Cv1(AUTOID) from TAB_KEYWORD_DICTIONARY

没看懂