楼主: guozhiwei1988
7783 17

[问答] 如何清空表数据保留表结构 [推广有奖]

11
soporaeternus 发表于 2014-8-15 16:55:02 |只看作者 |坛友微信交流群
  1. data b;
  2.         set a;
  3.         stop;
  4. run;

  5. proc sql;
  6.         create table b as
  7.                 select * from a
  8.                 where 0=1;
  9. quit;
复制代码
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
Tigflanker + 5 + 3 + 3 + 3 where 0

总评分: 论坛币 + 5  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

使用道具

12
bobguy 发表于 2014-8-16 10:57:19 |只看作者 |坛友微信交流群
420948492 发表于 2014-8-14 18:16
    data s;
    set sashelp.class;
    delete;
    run;

It is not a good idea. It will read whole data set.

This will be better.
    data s;
    stop;
    set sashelp.class;
    run;

已有 1 人评分论坛币 学术水平 收起 理由
420948492 + 40 + 1 精彩帖子

总评分: 论坛币 + 40  学术水平 + 1   查看全部评分

使用道具

13
420948492 发表于 2014-8-16 11:24:35 |只看作者 |坛友微信交流群
bobguy 发表于 2014-8-16 10:57
data s;
    set sashelp.class;
    delete;
好想法

使用道具

14
monanxu 发表于 2014-8-18 10:41:05 |只看作者 |坛友微信交流群
up,顶一下

使用道具

15
jingju11 发表于 2014-8-19 05:35:46 |只看作者 |坛友微信交流群
bobguy 发表于 2014-8-16 10:57
data s;
    set sashelp.class;
    delete;
的确如此. 效率比较低的也包括我给出的delete statement in PROC SQL.
我的初衷是给出和mySQL最相近的句法.把一个数据集清空往往牵扯到权限问题.比如说我们往往这么做:
proc sql;
connect to ...;
create table B as ...select * from A where 1=0;
drop A;
create table A as ... select * from B;
disconnect...;
quit;

直接由A 创造A 在许多database中无法做到. 京剧

使用道具

16
Jackywolf_2008 发表于 2020-3-4 19:06:09 |只看作者 |坛友微信交流群
data a;
set a ;
if _N_ = 0;
run;

使用道具

17
Cecilia_Xi 在职认证  发表于 2020-3-4 23:00:14 |只看作者 |坛友微信交流群
soporaeternus 发表于 2014-8-15 16:55
请问sql中 where 0=1中的0和1分别代表什么意思啊?

使用道具

18
Cecilia_Xi 在职认证  发表于 2020-3-4 23:04:14 |只看作者 |坛友微信交流群
请问这在平时的据清洗/分析工作中有哪些运用场景呢?

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 10:31