楼主: pinggu2688
3824 6

[原创博文] SQL中宏变量 [推广有奖]

  • 2关注
  • 0粉丝

博士生

6%

还不是VIP/贵宾

-

威望
0
论坛币
40 个
通用积分
40.2335
学术水平
1 点
热心指数
3 点
信用等级
1 点
经验
3113 点
帖子
166
精华
0
在线时间
103 小时
注册时间
2009-11-12
最后登录
2024-8-28

楼主
pinggu2688 发表于 2011-7-2 05:02:31 |AI写论文
20论坛币
想用proc sql在大dataset中取变量名称到宏变量中,如下:

proc sql noprint;
    select name into : namelst separated by " "
          from dictionary.columns
          where libname="。。。。。。。。。
比如一共有10个变量,存在&namelst里,但是这10个变量名字仅对应1个宏变量, 请问如何对&namelst中某特定的变量名操作呢?可否像数组一样对&namelst中某一个变量名操作呢?

谢谢

最佳答案

yugao1986 查看完整内容

把不同的变量赋予不同的单独的宏变量,这样可以针对性操作了。
关键词:sql Dictionary proc sql separate libname

沙发
yugao1986 发表于 2011-7-2 05:02:32
把不同的变量赋予不同的单独的宏变量,这样可以针对性操作了。
  1. %macro varlist(lib,dsn);
  2. proc sql noprint;
  3. select distinct name
  4. into :varname1-:varname10
  5. from dictionary.columns
  6. where(libname=upcase("&lib") &
  7. memname=upcase("&DSN"));
  8. quit;

  9. %do i=1 %to &sqlobs;
  10. %put &i &&varname&i;
  11. %end;
  12. %mend varlist;
复制代码
三人行必有我师

藤椅
shenliang_111 发表于 2011-7-2 08:19:00
用%scan函数一个一个扫出来
%do  i =1  to &nobs;
%scan(&namelst,&i)

板凳
soporaeternus 发表于 2011-7-3 14:49:28
楼上的用data步吧
那个10用sql确定比较麻烦
Let them be hard, but never unjust

报纸
yugao1986 发表于 2011-7-3 15:01:39
谢谢 4# soporaeternus
三人行必有我师

地板
hssnow 发表于 2011-7-10 15:08:27
soporaeternus 发表于 2011-7-3 14:49
楼上的用data步吧
那个10用sql确定比较麻烦
嘿嘿,所以暴力方法直接用
  1. into :varname1-:varname1000
复制代码

然后再用 &sqlobs 看个数
My Blog: http:/hssnow.name/
宁静致远

7
qhxnzhaoly66 发表于 2011-7-21 17:43:00
用%scan()把变量名一个个取出来
然后再用%if 来控制就可以了

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

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