如何将此查询结果集合并到变量中以便稍后打印出来?



所以我目前有这个

SET @title = (SELECT title FROM fnBorrowerBooks(@name, 'G3'))
SET @dateBorrowed = (SELECT DateBorrowed FROM fnBorrowerBooks(@name, 'G3'))
SET @dateReturned = (SELECT DateReturned FROM fnBorrowerBooks(@name, 'G3'))

但基本上我需要的是类似的东西

SET @variable 1 = (SELECT * FROM fnBorrowerBooks(@name, @Genre)

但是这会返回 3 列并且可以返回多个行,这显然不起作用,因为您无法分配多个值,我需要打印我得到多少结果,所以如果我得到 3 个不同的结果,我需要将所有 3 个打印为 1 个字符串,如果这有意义,那么

PRINT CONCAT(@variable1,'ble ble ble'(应该根据有多少结果返回我多行,我无法找到如何实现这一目标的方法。

如果您只需要标题,则可以在查询中连接:

DECLARE @Title NVARCHAR(3000) 
SELECT 
@Title = COALESCE(@Title + ', ', '') + title
FROM 
dbo.fnBorrowerBooks(@name, @genre)

SELECT @title

您可以尝试使用临时表和循环,如下所示:

CREATE TABLE #t
(tKey int  IDENTITY(1,1) PRIMARY KEY,
Column1 varchar(100),
Column2 varchar(100),
...)
INSERT INTO #t
SELECT * --the columns you select here need to be in the column list above
FROM fnBorrowerBooks(@name, @Genre)
DECLARE @Count int
DECLARE @MyString varchar(max)
SET @Count = 1
SET @MyString = ''
WHILE @Count <= (SELECT MAX(Key) FROM #t)
BEGIN
SET @MyString += (SELECT Column1 + ', ' + Column2 + ... FROM #t WHERE tKey = @Count)
SET @Count += 1
END
PRINT(@MyString)

最新更新