从SQL Server查询返回oneliner
在SQLServer2008中,我使用此代码将多行作为一行返回。它工作得很好,返回用从SQL Server查询返回oneliner,sql,sql-server,Sql,Sql Server,在SQLServer2008中,我使用此代码将多行作为一行返回。它工作得很好,返回用划分的数字。但当只有一行要返回时也是如此,然后我真的不需要完全不显示。这同样适用于拥有用于最后一个值。在不影响此查询性能的情况下修复它的最佳方法是什么 SELECT ( SELECT [KontaktyWartosc] + '; ' FROM [PodmiotyKontakty] INNER JOIN [Klienci] ON [PodmiotyKontakty].[Po
划分的数字代码>。但当只有一行要返回时也是如此,然后我真的不需要代码>完全不显示。这同样适用于拥有代码>用于最后一个值。在不影响此查询性能的情况下修复它的最佳方法是什么
SELECT (
SELECT [KontaktyWartosc] + '; ' FROM [PodmiotyKontakty]
INNER JOIN [Klienci]
ON [PodmiotyKontakty].[PodmiotID] = [Klienci].[PodmiotID]
WHERE [KlienciID] = @idKlienta AND
FOR XML PATH('')) AS CONTENT
)
只需颠倒连接顺序并使用子字符串
8000避免了额外的LEN
,您也可以对(max)
类型使用2000000000
SELECT
SUBSTRING (
(
SELECT '; ' + [KontaktyWartosc] FROM [PodmiotyKontakty]
INNER JOIN [Klienci]
ON [PodmiotyKontakty].[PodmiotID] = [Klienci].[PodmiotID]
WHERE [KlienciID] = @idKlienta AND
FOR XML PATH('')) AS CONTENT
), 3, 8000)