sql - 获取包含另一个表 SAS 中的值的行

标签 sql sas

有没有办法从 tbl1 中获取所有行,其中一列包含 tbl2 列中的一个值?

所以可以说 tbl1.col1 是字符串。现在我想要 tbl1 的行,其中 col1 包含(如 SQL 语法中 x 包含 y)tbl2.col2 的条目之一。

所以我知道您可以通过执行以下操作来获取一个表中出现在另一个表中的所有行 像这样的东西:

proc sql; 
select tbl1.* 
from tbl1, tbl2
where tbl1.id = tbl2.id
;quit;

但是当我尝试时:

proc sql; 
select tbl1.* 
from tbl1, tbl2
where tbl1.id contains tbl2.id
;quit;

我刚刚得到一张空 table 。

最佳答案

如果我理解你在做什么,即在 t1 中查找行,其中 t2 中至少有一行,使得 t2.id 将 t1.id 作为子字符串,那么你的问题可能是 t1.id 需要被压缩/修剪。否则,t1.id 将在其实际有用值填充到完整字符串长度之后有空格 - 在本例中,即 8 长(以我为 t1 读取字符串的方式读取字符串的默认值)。

data t1;
input id $;
datalines;
123
456
789
;;;;
run;

data t2;
input @1 id $8.;
datalines;
123 456
234 567
;;;
run;

proc sql;
select t1.*
from t1,t2
where t2.id contains compress(t1.id);
quit;

关于sql - 获取包含另一个表 SAS 中的值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23545086/

相关文章:

sql - 以 HAVING 条件分组

sql - 存储具有可变列数的大型 SQL 数据集

SQL 服务器计数

mysql - Insert into Table 从另一个表和一个独立的值

arrays - SAS如何使用ARRAY更改变量(列)位置(值也)

sql - MySQL - 分解/拆分输入到存储过程

r - 将具有重复测量的混合模型从 SAS 转换为 R

sql - 如何使用PROC SQL查找数值变量的长度

sas - 如何在 SAS 变量列表中添加逗号

odbc - 没有凭据的 SAS odbc 连接