SQL拼接同ID多行列值时返回问号问题求助
解决SQL同一ID列值拼接返回问号的问题
你遇到的问号问题,大概率是字符编码类型不匹配导致的:
- 若
column2是nvarchar(Unicode)类型,你用的', '是普通varchar字符串,拼接时会强制把nvarchar转成varchar,非ASCII字符就会变成????
直接修改SQL里的拼接分隔符,给字符串加N前缀指定为Unicode类型即可:
SELECT column1, STUFF((SELECT N', ' + column2 FROM your_table t2 WHERE t1.column1 = t2.column1 FOR XML PATH('')), 1, 2, '') AS concatenated_values FROM your_table t1 GROUP BY column1;
如果还是有问题,可以排查这两点:
- 确认
column2字段本身存储的不是乱码数据 - 检查数据库的默认字符集是否支持你存储的字符类型
内容的提问来源于stack exchange,提问作者Michael Covell
相关产品推荐
相关产品推荐

