我的表格结果如下: -
Name Cat Type
Waugh, John 1
Waugh, John 2
Sampras, Jim 3
Sampras, Jim 4
我想要的是:
Name Cat Type
Waugh, John 1, 2
Sampras, Jim 3, 4
我怎样才能做到这一点?非常感谢任何想法和建议!!
答案 0 :(得分:0)
对于t-sql,最好的答案是使用XML PATH或带有数字表的cte。例如,请参阅此问题:Concatenate many rows into a single text string?
答案 1 :(得分:0)
只需这样做:
SELECT
T1.Name,
[Cat Type] = STUFF((
SELECT ',' + convert(varchar(10),T2.[Cat Type])
FROM TableName T2
WHERE T1.Name = T2.Name
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
FROM TableName T1
GROUP BY T1.Name
ORDER BY [Cat Type]
结果:
NAME CAT TYPE
Waugh, John 1,2
Sampras, Jim 3,4
请参阅SQL Fiddle中的结果。
答案 2 :(得分:0)
如果您只有两个值,则可以执行以下操作:
select t.name,
min(t.CatType) + ',' + max(t.CatType) as CatType
from table t
group by t.name;
这假设CatType
是一个字符串变量。如果是数字,则必须将其转换为字符串。