You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SAS PROC SQL删除STU_KEY前缀为2002至2006的行

原代码错误原因
  • LIKE运算符仅支持字符类型字段匹配,若STU_KEY为数值类型,原筛选条件会完全失效
  • 无聚合逻辑下滥用GROUP BY:你没有使用COUNT/SUM等聚合函数,GROUP BY会导致SAS默认对非分组字段STU_KEY、STU_CODE做隐式聚合,返回异常结果
  • 反向排除逻辑冗余:相比排除2002-2006,直接正向匹配目标年份2007、2008的逻辑更严谨,不会出现后续新增其他年份时误纳入数据的问题
正确实现方案

情况1:STU_KEY为字符类型

PROC SQL;
CREATE TABLE a.stu_2007_2008 as
SELECT STU_ID, 
       STU_KEY, 
       STU_CODE
FROM a.stu
/* 截取前4位直接匹配目标年份 */
WHERE SUBSTR(STU_KEY, 1, 4) IN ('2007', '2008');
QUIT;

也可以用LIKE写法实现相同效果:

WHERE STU_KEY LIKE '2007%' OR STU_KEY LIKE '2008%'

情况2:STU_KEY为数值类型

PROC SQL;
CREATE TABLE a.stu_2007_2008 as
SELECT STU_ID, 
       STU_KEY, 
       STU_CODE
FROM a.stu
/* 数值运算取前四位,效率更高 */
WHERE INT(STU_KEY/10000) IN (2007, 2008);
QUIT;

内容的提问来源于stack exchange,提问作者Plutos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:27:00