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

因此,假设tbl1.col1是字符串。 现在,我想要tbl1的行,其中col1包含(如x在SQL语法中包含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;

我只是得到一张空桌子。

===============>>#1 票数:3 已采纳

如果我了解您在做什么,即在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;

  ask by Galadude translate from so

未解决问题?本站智能推荐:

1回复

尝试从带有Proc Sql的SAS中的另一个表更新表值

我有一个已创建的表(EM_UPLOAD),我想更新另一个表(QUESTVAR_CASEITEM)中的值。 QUESTVAR表中的值为null,而我将其设置为非null。 我正在尝试使用以下代码执行此操作: 它不断在SET行上出错,说当an =已经存在时,它正在期待一个=。 日志转储如下:
2回复

从SAS中的另一个表更新Oracle表

我从SAS插入的Oracle中有一个1000万行表。 每周,该表都会在SAS中更新,其中包含一些新行,并且会根据某些条件(例如日期,位置等)对某些行进行一些更改。我知道如何从SAS将表追加到oracle中。 这是我当前正在使用的代码。 在执行此操作之前,我首先必须确定SAS表中添加的
1回复

使用SAS中的另一个表更新表

我有表t1和t2,如何创建表t3? 基本上,我想使用t2中的数据更新t1中的t1.Key = t2.Key中的Var2,同时保持t1中的其他所有内容不变。 表t1 表t2 表t3 以下SAS代码只会给我错误: 谢谢!
3回复

从SAS宏(值列表)到SAS表(列)获取数据

我正在尝试使用PROC SQL从Macro变量创建SAS表: 我有一个保存在宏变量中的值列表:%let l = 1,2,3; 我想用包含宏变量值的列创建SAS表:1 2 3 非常感谢您的帮助。 真诚的,Abdeljalil
2回复

在SAS SQL中获取最后一行表

您好我正在执行以下数据步骤,其中我提取表的最后一行。 我怎么能在proc sql做同样的事情,我希望如果我能直接访问最后一行会更快? 谢谢
3回复

使用SAS中另一个表中的数据更新oracle表

我正在尝试运行以下代码以从click_summ表中的数据更新表摘要。 这段特定的代码抛出一个错误,说: 错误:已为输出打开ORACLE表摘要。 该表已存在,或者与现有对象名称冲突。 该表将不会被替换。 该引擎不支持REPLACE选项。 相同的解决方法是什么? 这
3回复

SAS或Postgresql:根据另一个列值添加列值

我想添加一列“索引”,并且当“变量”列中的行具有相同的值时,“索引”列的值相同。您可以使用Postgresql或SAS语法。 一件事是“变量”列中的值每天都在变化,例如tableA和tableB,所以硬代码是不可接受的。任何建议都值得赞赏!
2回复

sas-如何将当前行与上一个匹配,然后在另一列中分配一个值

我所拥有的是以下数据: 我要做的是“计算” MC从一个TPMC更改为另一个TPMC的次数。 这样最终输出应如下所示: 基本上,这里发生的是,“更改”列的第一行始终为0,然后,如果当前行中的TPMC与上一行不同,则“更改”列中显示1,否则显示0。 如何做呢? 当我按照
2回复

如何在sas中使用proc sql,在另一个表中使用in语句

我想做类似上面的事情。 当变量secid具有出现在名为“secids”的表中的值时,创建一个获取数据的表。 由于我想要的值大约是600,我不能用于(100,101等)。 我需要以某种方式从另一个表中提取这些值。 任何帮助都会非常感激,因为我不是SAS的专家。
1回复

如何在1个表中选择包含SQL中另一个表中的关键字的行?

我有两个表-一个带有句子,另一个带有关键字。 我想从包含任何关键字的句子表中选择行。 例如: 句子 我喜欢我的狗 我最喜欢的食物是面食 编程很有趣 关键词 最喜欢的食物 狗 我的目标是返回前两行。 到目前为止,我有: