【发布时间】:2021-08-04 21:51:24
【问题描述】:
我希望能够在单个变量中保存不止 1 个来自 SELECT 查询的输出。
目前我正在收集我需要的数据,如下所示:
DECLARE @something1 VARCHAR(MAX)
DECLARE @something2 VARCHAR(MAX)
DECLARE @something3 VARCHAR(MAX)
SET @something1 = (
SELECT
Custom AS 'XXL Format'
FROM
tblData
WHERE
ID = 1);
SET @something2 = (
SELECT
Custom.value('(/Individual/text())[1]', 'varchar(MAX)') AS 'Non XML Format'
FROM
tblData
WHERE
ID = 1)
SET @something3 = (
SELECT
tbl1.paper,
tbl2.type
FROM
tblData AS tbl1
JOIN tblData2 tbl2
ON tbl1.ID = tbl2.ID
WHERE
ID = 1);
我有以下演示,显示我想要做什么
DECLARE @tester VARCHAR(MAX)
SET @tester = (
SELECT
tbl1.Custom AS 'XXL Format',
tbl1.Custom.value('(/Individual/text())[1]', 'varchar(MAX)') AS 'Non XML Format'
tbl1.paper,
tbl2.type
FROM
tblData AS tbl1
JOIN tblData2 tbl2
ON tbl1.ID = tbl2.ID
WHERE
ID = 1);
我得到以下错误:
选择列表中只能指定一个表达式 EXISTS 没有引入子查询
两个演示都可以在here找到
我试图将变量设置为“表”并像这样存储数据,但这似乎也无法正常工作 [我确定我做错了什么——这可能是我这个问题的答案我问]
我怎样才能只为上述查询输出的所有内容使用 1 个变量?
【问题讨论】:
-
如果您的期望是具有串联字符串的单个值,请考虑使用
STRING_AGG函数。 -
请提供样本数据和期望的结果。
-
在提出问题时,您需要提供一个可重现的最小示例。请参考以下链接:stackoverflow.com/help/minimal-reproducible-example 请提供以下内容: (1) DDL 和样本数据填充,即 CREATE table(s) 加上 INSERT T-SQL 语句。 (2) 你需要做什么,即逻辑和你的代码尝试在 T-SQL 中实现它。 (3) 期望的输出,基于上面#1 中的样本数据。 (4) 你的 SQL Server 版本 (SELECT @@version;)
标签: sql sql-server tsql variables sql-server-2016