gpt4 book ai didi

sql-server - SQL Server 中的表变量

转载 作者:行者123 更新时间:2023-12-04 06:58:12 26 4
gpt4 key购买 nike

我使用的是 SQL Server 2005。我听说我们可以使用表变量来代替 LEFT OUTER JOIN。

我的理解是,我们必须首先将左表中的所有值放入表变量中。然后我们必须用正确的表值更新表变量。然后从表变量中选择。

有没有人遇到过这种方法?您能否建议一个实时示例(带查询)?

我没有为此写过任何查询。我的问题是 - 如果有人使用过类似的方法,我想知道这种情况以及如何处理。我知道在某些情况下它可能比 LEFT OUTER JOIN 慢。

请假设我们正在处理少于 5000 条记录的表。

谢谢

最佳答案

可以的,但我不知道你为什么要这样做。

这确实看起来像是在倒退。但如果你只是为了自己的学习而尝试这个,这里是:

DECLARE @MainTable TABLE(
ID INT,
Val FLOAT
)

INSERT INTO @MainTable SELECT 1, 1
INSERT INTO @MainTable SELECT 2, 2
INSERT INTO @MainTable SELECT 3, 3
INSERT INTO @MainTable SELECT 4, 4

DECLARE @LeftTable TABLE(
ID INT,
MainID INT,
Val FLOAT
)

INSERT INTO @LeftTable SELECT 1, 1, 11
INSERT INTO @LeftTable SELECT 3, 3, 33

SELECT *,
mt.Val + ISNULL(lt.Val, 0)
FROM @MainTable mt LEFT JOIN
@LeftTable lt ON mt.ID = lt.MainID

DECLARE @Table TABLE(
ID INT,
Val FLOAT
)

INSERT INTO @Table
SELECT ID,
Val
FROM @MainTable

UPDATE @Table
SET Val = t.Val + lt.Val
FROM @Table t INNER JOIN
@LeftTable lt ON t.ID = lt.ID

SELECT *
FROM @Table

关于sql-server - SQL Server 中的表变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2279606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com