楼主: syfins
3697 15

[原创博文] 碰到事件~高手请进,来猜猜这是个啥字符 [推广有奖]

  • 0关注
  • 0粉丝

本科生

40%

还不是VIP/贵宾

-

威望
0
论坛币
107 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
466 点
帖子
35
精华
0
在线时间
139 小时
注册时间
2008-1-4
最后登录
2018-7-5

楼主
syfins 发表于 2010-3-10 15:46:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
出现灵异事件啦~很崩溃,最近再也不上天涯鬼版了
高手来帮忙看看
就是policyno字段的一个value有问题,处理思路如下

Proc SQL;
  select * from datamart.claim_201001
    where policyno='P07C270096';
Run;
无返回结果,这个value是从table中复制出来的。

自然想到空格问题
Data work.test;
  set datamart.claim_201001;
  policyno2=compress(policyno);
Run;
Proc SQL;
  select * from work.test
    where policyno2='P07C270096';
Run;
无结果返回

继续测试
Proc SQL;
  select * from datamart.claim_201001
    where policyno like '%P07C270096%';---有结果返回
  select * from datamart.claim_201001
    where policyno like 'P07C270096%';---有结果
  select * from datamart.claim_201001
    where policyno like '%P07C270096';---无结果
Run;

不是空格,是tab?
Data work.test;
  set datamart.claim_201001;
    policyno2=compress(policyno," ");
Run;
Proc SQL;
  select * from work.test
    where policyno2='P07C270096';
Run;
无结果返回

崩溃了
Data work.test;
  set datamart.claim_201001;
    policyno2=substr(policyno,1,10);
Run;
Proc SQL;
  select * from work.test
    where policyno2='P07C270096';
Run;
有结果返回

那这个末尾跟的字符到底是啥?
高手来解读一下?
二维码

扫码加我 拉你入群

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

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

关键词:proc sql compress Policy Select SUBSTR

沙发
syfins 发表于 2010-3-10 16:03:24
到底是瓦特呢

藤椅
crackman 发表于 2010-3-10 17:10:42
不晓得哥们为啥SQL 后面还要加个RUN干啥?
RUN是毫无意义的

板凳
wzy1713 发表于 2010-3-10 17:12:22
的确够诡异的! 等着高手进来解惑指导

报纸
horace_chen 发表于 2010-3-10 17:46:30
能上传几个数据看看吗?



试试把所有控制字符都去掉。
Data work.test;
  set datamart.claim_201001;
    policyno2=compress(policyno, ,"c");
Run;

地板
syfins 发表于 2010-3-10 18:03:50
上传没啥意义啊
只有这一个value出问题
同一列1w多个value都没问题的
不知道'P07C270096'在录入的时候多录入了什么

7
ping_007 发表于 2010-3-10 22:02:04
6# syfins

有可能是回车之类的(line feed or carriage return)。Try compressing out '0A0D'x

8
jingju11 发表于 2010-3-11 05:08:17
7# ping_007
咱们中国字吧。

9
bobguy 发表于 2010-3-11 08:56:15
syfins 发表于 2010-3-10 15:46
出现灵异事件啦~很崩溃,最近再也不上天涯鬼版了
高手来帮忙看看
就是policyno字段的一个value有问题,处理思路如下

Proc SQL;
  select * from datamart.claim_201001
    where policyno='P07C270096';
Run;
无返回结果,这个value是从table中复制出来的。

自然想到空格问题
Data work.test;
  set datamart.claim_201001;
  policyno2=compress(policyno);
Run;
Proc SQL;
  select * from work.test
    where policyno2='P07C270096';
Run;
无结果返回

继续测试
Proc SQL;
  select * from datamart.claim_201001
    where policyno like '%P07C270096%';---有结果返回
  select * from datamart.claim_201001
    where policyno like 'P07C270096%';---有结果
  select * from datamart.claim_201001
    where policyno like '%P07C270096';---无结果
Run;

不是空格,是tab?
Data work.test;
  set datamart.claim_201001;
    policyno2=compress(policyno," ");
Run;
Proc SQL;
  select * from work.test
    where policyno2='P07C270096';
Run;
无结果返回

崩溃了
Data work.test;
  set datamart.claim_201001;
    policyno2=substr(policyno,1,10);
Run;
Proc SQL;
  select * from work.test
    where policyno2='P07C270096';
Run;
有结果返回

那这个末尾跟的字符到底是啥?
高手来解读一下?
Some of char shows nothing but it does store in different values. You can put it in hex format.
Here is an example.

data _null_;
   do i=1 to 128;
      x=byte(i);
      put @1 i= @10  x= @20 x= hex.;
   end;
run;

10
爱萌 发表于 2010-3-11 10:39:30
我看完了,没什么灵什么的东西,
%在SAS相当于通配符,在正则表达式
最恨对我说谎或欺骗我的人

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-22 08:59