楼主: zhangjiajun1988
1415 3

SAS SQL 急问 请各位大侠帮忙 。。。 [推广有奖]

  • 0关注
  • 0粉丝

大专生

8%

还不是VIP/贵宾

-

威望
0
论坛币
91 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
112 点
帖子
16
精华
0
在线时间
68 小时
注册时间
2010-8-16
最后登录
2016-6-7

楼主
zhangjiajun1988 发表于 2012-1-22 02:00:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我又段代码 :
proc sql;
select
CASE STATE
WHEN 'Alabama' then 'warm'
Else 'not warm'
end as jack
From library.accident;
quit;

提交
ERROR: Operand of WHEN clause 1 is not the same data type as the CASE operand.



STATE   LENGTH 是 3   TYPE 是 NUMERIC
我觉得NUMERIC 会有问题 但是不知道怎么改动。。。  

请各位指点
谢谢  
二维码

扫码加我 拉你入群

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

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

关键词:各位大侠 sql Accident proc sql numeric

沙发
jinlin2009 发表于 2012-1-28 02:33:45
你应该在数据集里面加这样一个statement

data library.accident;
   set library.accident;
   state_new = put(state, $20); /*长度看你需求,取决于州名长度*/
run;

然后你在用proc sql , case when 里面选state_new.

不过, 理论上,你根本不可能在原来的数据集里找到Alabama,因为它是numeric, 最好再检查检查

藤椅
sausau 发表于 2012-2-1 03:25:09
楼主看见的是可能是permanent format 后的值,原来数据可能存的时1,2,3,然后又各format是1=alabama之类的。

板凳
luorongjin 发表于 2012-2-1 09:52:47
同意一楼的观点!

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

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