首页 > 解决方案 > 在列中连接字符串

问题描述

我有这个查询:

declare @tab1 table (
    descrizione varchar(50),
    c_prodotto char(5),
)

insert into @tabRiepilogoProvvigioniBanca (descrizione, c_prodotto)
select c_prodotto, descrizione
from Maintable

此查询的结果返回 2 条记录。

然后我想打印它们:

select  @riga   = ''

select  @riga   = @riga + substring( ltrim(rtrim( c_prodotto)) + space(10), 1, 10)
from @tab1
select  @riga   = @riga + ' ' + substring(ltrim(rtrim(ISNULL( descrizione,0))) + space(50), 1, 15) 
from @tab1

select @riga

结果是:

PVDTR PVTDC    0 0

我想知道是否有可能得到这样的结果:

PVDTR   0
PVTDC   0

标签: sql-servertsql

解决方案


需要将select填充的两条语句合并@riga成一条select语句,并且在每一行之后还要添加一个换行符,如下:

select @riga = @riga
             + substring(ltrim(rtrim(c_prodotto)) + space(10), 1, 10)
             + ' '
             + substring(ltrim(rtrim(ISNULL(descrizione,0))) + space(50), 1, 15)
             + CHAR(13) + CHAR(10)
from @tab1

推荐阅读