楼主: guozhiwei1988
8567 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
拉您进交流群
GMT+8, 2025-12-29 12:18