【发布时间】:2016-02-08 18:49:16
【问题描述】:
我正在尝试像这样设置 varchar 变量:
DECLARE @var NVARCHAR(40)
set @var = (SELECT name from Tmptable AS name )
我想要这样的变量存储值:'name1,name2,name3,...'
这将返回一个类似于标题中的错误:子查询返回超过 1 个值。
我在 on 函数的参数中使用了这个变量
Select *
Into Tmp2
FROM [dbo].[MyFunction](@var, DEFAULT) AS PARAM
.....
我知道我们不能在一个变量中放入多个值。我需要该变量通过将值拆分为“,”来表示多个值
关于这方面的任何方面
【问题讨论】:
-
在数据库中存储分隔数据通常是个坏主意。这意味着您必须将其拆分回可用值。您可以使用 FOR XML 来生成分隔列表,但您很快就会回来询问如何拆分列表。有更好的选项,例如表值参数或许多其他选项,而不是分隔列表。
-
有没有办法将 SQL Server 结果集(多行)转换为字符串
-
@AHiggins 我看看它感兴趣的链接
标签: sql sql-server tsql subquery