SQL选择多列插入多变量
问题描述:
我将SQL从Teradata数据到SQL Server中的TeradataSQL选择多列插入多变量
,他们有格式
SELECT col1, col2
FROM table1
INTO @variable1, @variable2
在SQL Server中,我发现
SET @variable1 = (
SELECT col1
FROM table1
);
每个语句只允许一个列/变量。如何使用单个SELECT语句分配2个或更多变量?
答
SELECT @variable1 = col1, @variable2 = col2
FROM table1
答
SELECT @var = col1,
@var2 = col2
FROM Table
以下是有关设置一些有趣的信息/ SELECT
- 集是变量赋值的ANSI标准,SELECT不是。
- SET一次只能分配一个变量,SELECT可以一次进行多个 赋值。
- 如果从查询分配,SET只能分配一个标量值。如果 查询返回多个值/行 ,则SET将引发错误。选择 将分配一个值到 变量和隐藏返回了 多个值的事实,(所以 可能你不会知道为什么事情 要去别的地方错了 - 有乐趣 疑难解答之一)
- 当从查询分配,如果没有返回值则SET将 分配NULL,这里选择不会 让所有的分配(所以 变量将不会改变从它的 前值)
- 至于速度的差异 - SET之间没有直接的区别0和SELECT。然而,SELECT的能力 在一个 拍摄做出多个任务确实给它一个轻微的速度 优于SET。
与多个SELECT相比,这样做会提高性能/速度还是相同? –
真正的答案是测试它并亲自查看。当然,非正式的答案是肯定的。 –