Sql 如何检查一个数据集中的单元格是否存在于另一个数据集中;s变量/列?
我有两个数据集,分别称为Sql 如何检查一个数据集中的单元格是否存在于另一个数据集中;s变量/列?,sql,sas,Sql,Sas,我有两个数据集,分别称为A和B;下面是它们的样子: A: B: 当然,有数十万次的观测,而不仅仅是三次。我想看看a.var1,看看a.var1中的每个观察值是否存在于B.var1中。如果没有,我想用一个空格替换A.var1。我还想保留缺少A.var1的行 最终输出: 您知道我可以编写什么样的SQL查询来实现这一点吗?我将在SAS中的PROC SQL语句中编写这一点 SELECT B.Var1, A.Var2 FROM A LEFT OUTER JOIN B ON A.Var1 = B.Var1
A
和B
;下面是它们的样子:
A:
B:
当然,有数十万次的观测,而不仅仅是三次。我想看看a.var1
,看看a.var1
中的每个观察值是否存在于B.var1
中。如果没有,我想用一个空格替换A.var1
。我还想保留缺少A.var1
的行
最终输出:
您知道我可以编写什么样的SQL查询来实现这一点吗?我将在SAS中的PROC SQL语句中编写这一点
SELECT B.Var1, A.Var2
FROM A LEFT OUTER JOIN B ON A.Var1 = B.Var1
这应该会得到您想要的结果。的答案是正确的,因为我忽略了表A可能包含我希望保留在最终输出中的缺失观察值的细节
但是,考虑到这些细节,我们可以根据客户的答案:
CREATE TABLE Final as
SELECT DISTINCT B.Var1, A.Var2
FROM A LEFT OUTER JOIN B ON A.Var1 = B.Var1
UNION
SELECT DISTINCT B.Var1
FROM B;
DELETE FROM FINAL
WHERE VAR2 IS MISSING;
我意识到我问的是一个愚蠢的问题。我忘了添加一个事实,即表A中缺少观察值,我还希望在最终输出中保留为缺少。我将对问题进行编辑。
Var1 Var2
. "ID1"
. "ID2"
"Hello30" "ID3"
. "ID4"
SELECT B.Var1, A.Var2
FROM A LEFT OUTER JOIN B ON A.Var1 = B.Var1
CREATE TABLE Final as
SELECT DISTINCT B.Var1, A.Var2
FROM A LEFT OUTER JOIN B ON A.Var1 = B.Var1
UNION
SELECT DISTINCT B.Var1
FROM B;
DELETE FROM FINAL
WHERE VAR2 IS MISSING;