数据表之间的连接问题(----------------在线等-----------------)
本帖最后由 absd96321 于 2012-11-22 12:03:00 编辑 数据库有两张表A、B。A表和B表通过一个字段关联,例如
A:1.张三 爱唱歌
2.张三 爱跳舞
B:1.张三 爱唱歌 爱跳舞
如果A表增加了一条数据,变成
A:1.张三 爱唱歌
2.张三 爱跳舞
3.张三 爱打球
B就应该是:
B:张三 爱唱歌 爱跳舞 爱打球
B表的字段数量受A表的数据量影响
现在的问题就是我怎么实现B表的字段数量随着A表的数据增多而增多?请各位大神帮帮忙。
[最优解释]
--CREATE TABLE test (NAME VARCHAR(10),aihao VARCHAR(20))
--INSERT INTO test
--SELECT '张三', '爱唱歌'
--UNION ALL
--SELECT '张三', '爱跳舞'
--UNION ALL
--SELECT '张三', '爱打球'
--UNION ALL
--SELECT '李四', '爱跳舞'
--UNION ALL
--SELECT '李四', '爱打球'
--SELECT * FROM test
DECLARE @s NVARCHAR(4000)
SET @s = ''
SELECT @s = @s + ',' + QUOTENAME('aihao') + '=max(case when [aihao]='
+ QUOTENAME(aihao, '''') + ' then [aihao] else '''' end)'
FROM test
GROUP BY aihao
EXEC('select [name]'+@s+' from test group by [name]')
/*
name aihao aihao aihao
---------- -------------------- -------------------- --------------------
李四 爱打球 爱跳舞
张三 爱唱歌 爱打球 爱跳舞
(2 行受影响)
*/