【发布时间】:2019-10-04 17:14:04
【问题描述】:
我正在尝试从中获得帮助
人
名称
爱丽丝
鲍勃
t动物
命名动物
爱丽丝猫
爱丽丝猫
鲍勃·马
鲍勃狗
到这里
爱丽丝“猫*2”
鲍勃“马,狗”
到目前为止,我有一个对动物进行分组和计数的中间表
t 分组
名称动物计数
爱丽丝猫 2
鲍勃狗 1
鲍勃马 1
如果我跑了
SELECT Name, Animals=STUFF((
SELECT N', '+animal+'*'+tally FROM tgrouped as g
WHERE g.Name = p.Name
FOR XML PATH(''), TYPE).value(N'.[1]', N'varchar(max)'), 1, 2, N'')
FROM tpeople as p
我明白了
命名动物
爱丽丝猫*2
鲍勃狗*1,马*1
有没有办法跳过中间表?还有什么方法可以在计数为 1 时不显示?
【问题讨论】:
-
为什么是
"Cat*2"而不是"Dog*1"?有没有其他时候你会有不同的符号? -
Larnu,我得到的规范要求任何重复的东西都得到计数,但如果只有一个,那么它会显示为没有计数。我认为数据请求者将进一步处理它,将货币价值分配给狗等,* 将真正充当分隔符,
标签: sql sql-server string concatenation