Sql server 将数据合并到一个项目并替换超出范围的字符
在我的sql server中,我有一个名为company的表,数据如下图所示。 我使用一个查询: STUFFselect'、'+a.companyname from从公司a中选择companyname作为XML路径,键入.value'.'、'NVARCHARMAX',1、2,以显示数据,行如下图所示。 但是,这个日期对我来说太长了,我想显示最多40个字符的数据。我可以使用LEFTcompanyname,40来显示结果,如下所示。 我的问题是:如何用…替换不完整的数据。。。? 备注:某些公司名称的长度不同,可能长也可能短,逗号符号也可能包含在某些公司名称中。请尝试以下操作:Sql server 将数据合并到一个项目并替换超出范围的字符,sql-server,Sql Server,在我的sql server中,我有一个名为company的表,数据如下图所示。 我使用一个查询: STUFFselect'、'+a.companyname from从公司a中选择companyname作为XML路径,键入.value'.'、'NVARCHARMAX',1、2,以显示数据,行如下图所示。 但是,这个日期对我来说太长了,我想显示最多40个字符的数据。我可以使用LEFTcompanyname,40来显示结果,如下所示。 我的问题是:如何用…替换不完整的数据。。。? 备注:某些公司名称的
CASE WHEN LEN(companyname) > 40 THEN LEFT(companyname,40) + '"..."'
ELSE LEFT(companyname,40)
END AS CompanyName
如果公司名称可能包含逗号,请考虑使用其他字符,如“。”作为定界符
case when len(@companyname) > 40
then left(@companyname, 40 - charindex(',', reverse(left(@companyname,40))) + 1)
+ '..'
else @companyname
end