正在迭代要插入的值。。。还是另一种方式?SQL Server
附加问题: 我无法在INSERT语句中别名ETL.Dim_状态。。。这让我相信insert-in和select/from/leftjoin/where是两个独立的语句。。。那么为什么我不能在所有东西下面插入呢 它们是两个独立的陈述还是一个?如果它们是一个,那么为什么我不能在插入到部分中使用别名 我选择了一个子查询?。。。那为什么不在括号里呢正在迭代要插入的值。。。还是另一种方式?SQL Server,sql,sql-server,tsql,sql-insert,Sql,Sql Server,Tsql,Sql Insert,附加问题: 我无法在INSERT语句中别名ETL.Dim_状态。。。这让我相信insert-in和select/from/leftjoin/where是两个独立的语句。。。那么为什么我不能在所有东西下面插入呢 它们是两个独立的陈述还是一个?如果它们是一个,那么为什么我不能在插入到部分中使用别名 我选择了一个子查询?。。。那为什么不在括号里呢 因此,如果我尝试运行这个,那么我会得到一个错误,告诉我子查询返回了多个值。我知道这一点,我需要插入所有这些值 INSERT INTO ETL.Dim_St
因此,如果我尝试运行这个,那么我会得到一个错误,告诉我子查询返回了多个值。我知道这一点,我需要插入所有这些值
INSERT INTO ETL.Dim_Status ([Status])
VALUES(
--- I need to iterate through each of the new distinct values
(
SELECT DISTINCT
I.[Status]
FROM
dbo.Invitee I
LEFT JOIN
ETL.Dim_Status S
ON I.[Status] = S.[Status]
WHERE
S.[Status] IS NULL
)
);
我是否可以将其设置为基于集合的操作,而不是逐行插入值
我尝试了光标,但我甚至不知道是否将所有内容都放在了正确的位置:
DECLARE insertNewStatus CURSOR
INSERT INTO ETL.Dim_Status ([Status])
VALUES(
--- I need to iterate through each of the distinct values
FOR
(
SELECT DISTINCT
I.[Status]
FROM
dbo.Invitee I
LEFT JOIN
ETL.Dim_Status S
ON I.[Status] = S.[Status]
WHERE
S.[Status] IS NULL
)
OPEN insertNewStatus
FETCH NEXT FROM insertNewStatus
);
更新-如果您试图添加来自被邀请者的状态,但该状态尚未处于ETL.Dim_状态
INSERT INTO ETL.Dim_Status ([Status])
SELECT DISTINCT [Status]
FROM dbo.Invitee
WHERE [Status] NOT IN ( SELECT DISTINCT [Status] FROM ETL.Dim_Status)
了解更多关于
更新-如果您试图添加来自被邀请者的状态,但该状态尚未处于ETL.Dim_状态
INSERT INTO ETL.Dim_Status ([Status])
SELECT DISTINCT [Status]
FROM dbo.Invitee
WHERE [Status] NOT IN ( SELECT DISTINCT [Status] FROM ETL.Dim_Status)
查看更多关于只需删除
值
关键字,sql操作是设置操作。
这是一种标准的SQL语法
INSERT INTO ETL.Dim_Status ([Status])
SELECT DISTINCT
I.[Status]
FROM
dbo.Invitee I
LEFT JOIN
ETL.Dim_Status S
ON I.[Status] = S.[Status]
WHERE
S.[Status] IS NULL
只需删除
值
关键字,sql操作就是set操作。
这是一种标准的SQL语法
INSERT INTO ETL.Dim_Status ([Status])
SELECT DISTINCT
I.[Status]
FROM
dbo.Invitee I
LEFT JOIN
ETL.Dim_Status S
ON I.[Status] = S.[Status]
WHERE
S.[Status] IS NULL
在重复你想要达到的目标之后?您的输入是什么?使用insert存储的预期输出是什么?大多数场景不需要迭代第一个是“基于集合的操作”,它将插入SELECT语句返回的所有值。你只是有点混淆了你真正想要达到的目标。但是在重复了你想要达到的目标之后,更新了我的回答?您的输入是什么?使用insert存储的预期输出是什么?大多数场景不需要迭代第一个是“基于集合的操作”,它将插入SELECT语句返回的所有值。你只是有点混淆了你真正想要达到的目标。但是更新了我的答案