全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
7835 32
2012-11-24
例如,我要把表中TEMP34中_LHAND 列中所有包含数据集RULE_1中LH列中字符的观察值找出来,程序如下
PROC SQL;
CREATE TABLE TEMP4 AS
SELECT TEMP34.*
FROM RULE_1,TEMP34
WHERE TEMP34._LHAND ? RULE_1.LH ;
QUIT;

但是不报错,也没有结果,会出现一句“执行该查询涉及到执行无法优化的一个或多个 Cartesian 产品连接”
请问怎么办啊?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-11-24 21:55:45
让我们情何以堪啊?百度一下,结果百度出你的提问了。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-11-25 09:31:19
颜非如玉 发表于 2012-11-24 21:55
让我们情何以堪啊?百度一下,结果百度出你的提问了。。。
proc sql;
  create table new as
  select *
  from sashelp.class
  where  name ? "A";
  QUIT;

  data demo1;
     name1="ABC";sex=1;output;
         name1="DEF" ;sex=0;output;
run;

data demo2;
     name2="B";output;
         name2="C";output;
         name2="E";output;
         run;

         proc sql;
           create table want as
           select *
           from demo1 as a , demo2 as b
           where a.name1 ?b.name2;
           quit;
log:
NOTE: The execution of this query involves performing one or more Cartesian product joins that can not be optimized.
NOTE: Table WORK.WANT created, with 3 rows and 3 columns.

因为是多表查询,应该会产生笛卡尔集。上面的简单的测试是可以跑出结果的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-11-25 16:55:48
webgu 发表于 2012-11-25 09:31
proc sql;
  create table new as
  select *
谢谢哈,我用了你写的这段是可以运行的,但是为什么我用来做我要分析的数据就不行呢?是不是因为数据大的原因。我的demo1有几千条记录,demo2有几百条记录,而且变量name2不是一个字符,是一串字符,是不是跟这些有关呢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-11-26 13:03:08
in 语句不行么?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-11-26 13:20:06
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群