楼主: zelision
5225 6

[问答] SAS SQL中为什么数字型字段where查询直接到等于查不出来呢? [推广有奖]

  • 0关注
  • 1粉丝

已卖:644份资源

博士生

8%

还不是VIP/贵宾

-

威望
0
论坛币
673 个
通用积分
3.1200
学术水平
12 点
热心指数
12 点
信用等级
12 点
经验
2326 点
帖子
152
精华
0
在线时间
276 小时
注册时间
2007-3-24
最后登录
2025-9-5

楼主
zelision 发表于 2010-12-16 11:05:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位大虾帮忙看一下

今天在work下建一个表,tab1 如下:
字段a为数字型,8.4

id    a
1    0.700
2    0.700
3    0.000
4    0.700
5    0.500
6    0.300
7    0.700
8    0.700
9    0.700
10  0.400

执行语句:

proc sql noprint;
create table work.tab2 as
select * from work.tab1 bb where bb.a=0.700;
quit;

执行后查询不出来,bb.a=0.700,如果是字符型,用bb.a=‘0.700’好像可以,不知道怎么回事,以前没出现过这种情况啊,望各位大侠解读一下,帮帮忙!
二维码

扫码加我 拉你入群

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

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

关键词:Where HERE sql whe proc sql SAS 数字 查询 sql 字段

沙发
zelision 发表于 2010-12-16 11:26:35
用另一种方式解决了,不过,还是希望弄明白为什么会出现这种情况,以前没遇到过

藤椅
xiansonghe 发表于 2010-12-16 12:20:48
2# zelision
刚运行了一下,可以查询,不知道是不是楼主用的哪个版本SAS

板凳
soporaeternus 发表于 2010-12-16 12:50:34
在原数据上用
where abs(bb.a-0.700)<=0.000001 试试看有没有?
Let them be hard, but never unjust

报纸
zelision 发表于 2010-12-16 13:29:58
9.1的,我估计可能是字符类型的原因,虽然写了等于0.700,实际上SAS原有的不是0.7,如果是输出格式是BEST型肯定就可以,但我看了一下,上面输出格式是8.4数字型

地板
zelision 发表于 2010-12-16 13:32:53
soporaeternus 发表于 2010-12-16 12:50
在原数据上用
where abs(bb.a-0.700)
用这个执行,肯定有的

7
soporaeternus 发表于 2010-12-16 13:40:09
浮点数精确问题吧,我遇到过excel数据导入后,看上去是整数,其实是一个精确到-1*E-14的浮点数,用等于无法筛选出来。对浮点数使用绝对等于的时候,给个精度匹配要好一点,呵呵
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
hopewell + 1 + 1 + 1 我很赞同

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

Let them be hard, but never unjust

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

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