简单来说:Macro Quoting就是将具有特殊功能字符及字母组合的特殊功能隐藏掉。例如:让分号(;)不再表示一个语句的结束,而就是一个普普通通的字符;让GE不再表示大于等于的比较符,而就是两个普普通通的字母

%STR

%STR宏函数是专门用于隐藏特殊字符及字母组合的特殊功能,该宏函数可以隐藏以下所有的特殊字符及字母组合:

需要特别注意的是,如果在文本中出现不匹配的单引号、双引号、或者括号,则需要在其前面加一个%,用来标注该符号是不匹配的,单独的字符。%的意义类似于其他语言中的转义字符:斜杠(\)

%NRSTR

%NRSTR函数的功能与%STR函数是一样的,只不过在%STR的基础上,还能隐藏%和&两个Macro Trigger的功能,使其跟普通字符一样。NR为Not Resolved的简写,即不解析宏变量和宏程序(后文中带有NR的函数都是此意义)

Macro Function wih Quoting

具有Quoting功能的函数:%QSCAN、%QSUBSTR、%QSYSFUNC、%QUPCASE。这些具有Quoting功能的函数,能够隐藏返回结果中的特殊字符的功能。具体来说,可以隐藏以下特殊字符:

%QUOTE和%NRQUOTE

%STR(包括%NRSTR)只在程序编译的阶段起作用;在程序执行阶段是不起作用的。而%QUOTE函数(相对应的还有%NRQUOTE),是在程序执行阶段生效的

%QUOTE与%NRQUOTE两个函数的功能与%STR和%NRSTR两个函数的功能是一样的,只不过前两者是在程序执行阶段生效,而后两者是在程序编译阶段生效

%BQUOTE和%NRBQUOTE

%BQUOTE与%QUOTE,%NRBQUOTE与%NRQUOTE的生效阶段是一样的,都是在程序执行阶段生效。但是%BQUOTE和%NRBQUOTE,在%QUOTE和%NRQUOTE的基础上多了一个功能,即对于不匹配的引号或括号不需要使用多增加一个%(无论是%STR、%NRSTR、%QUOTE、%NRQUOTE如果有不匹配的引号,则必须要在不匹配的引号前添加%。%类似于转义字符的功能)

建议:一般情况下,都会使用%BQUOTE和%NRBQUOTE,基本不使用%QUOTE和%NRQUOTE

%SUPERQ

%SUPERQ宏函数比较特殊,其参数必须是宏变量的名字,而且不用&符号。该函数可以隐藏%NRBQUOTE函数可隐藏的特殊字符及字母组合。

但%NRBQUOTE如果参数为宏变量的引用,会在隐藏特殊字符功能前,先尝试解析其宏变量值中的宏引用或者宏变量的引用;而%SPUERQ函数则不会解析其参数宏变量值中的宏引用或者宏变量的引用

%UNQUOTE

%UNQUOTE顾名思义,就是将之前隐藏掉的功能重新激活,去除Quoting的作用

SAS学习笔记47 Macro Quoting的更多相关文章

  1. SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(5)SAS宏语言.SQL过程 1. 一个SAS程序可能包含一个或几个语言成分: DATA步或PROC步 全程语句 SAS组件语言(SCL) ...

  2. SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(4)DATA步循环与控制.常用全程语句.输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和E ...

  3. SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(3)变量操作.观测值操作.SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 ...

  4. SAS学习笔记之《SAS编程与数据挖掘商业案例》(2)数据获取与数据集操作

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(2)数据获取与数据集操作 1. SET/SET效率高,建立的主表和建表索引的查询表一般不排序, 2. BY语句,DATA步中,BY语句规定 ...

  5. SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(1)系统简介和编程基础 1. SAS系统简介 1.1 SAS是先编译后执行的语言,data步标志着编译的开始. 数据指针:当前内存缓存区, ...

  6. SAS学习笔记42 宏程序

    Autocall Macro是由SAS提供的一些实现特定功能的Macro Program,可以在代码中直接使用 其中以Q开头的相比正常的多了隐藏特殊字符的功能(称之为Macro Quoting): K ...

  7. [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  8. CUBRID学习笔记 47 show

    cubrid的中sql查询语法show c#,net,cubrid,教程,学习,笔记欢迎转载 ,转载时请保留作者信息.本文版权归本人所有,如有任何问题,请与我联系wang2650@sohu.com . ...

  9. [置顶] iOS学习笔记47——图片异步加载之EGOImageLoading

    上次在<iOS学习笔记46——图片异步加载之SDWebImage>中介绍过一个开源的图片异步加载库,今天来介绍另外一个功能类似的EGOImageLoading,看名字知道,之前的一篇学习笔 ...

随机推荐

  1. input type color

    <input type="color"> https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input ...

  2. (基因功能 & 基因表达调控)研究方案

    做了好久的RNA-seq分析,基因表达也在口头溜了几年了,但似乎老是浮在表面. 对一件事的了解程度决定了你的思维深度,只想做技工就不用想太多,想做大师就一定要刨根问底. 老是说基因表达,那么什么是基因 ...

  3. Spring Boot核心原理

    Spring Boot核心原理 spring-boot-starter-xxx  方便开发和配置 1.没有depoy setup tomcat 2.xml文件里面的没有没有了 @SpringBootA ...

  4. 查看mysql事务的隔离级别

    1.选择数据库,查看当前事务隔离界别 select @@tx_isolation; 2.开启事务,回滚事务 3.事务级别中脏读,幻读 4.MySQL事务autocommit设置,每次sql必须用com ...

  5. Eclipse创建的Java Web项目,如何启用外置浏览器访问jsp或者html页面

    当我们用Eclipse创建了一个Java Web项目,想访问一个jsp或者html页面时,通常会在目标页面(以jsp为例)上点击鼠标右键,选择[Run As]——>[Run on Server] ...

  6. sublime 删除重复行

    sublime 删除重复行 - 国内版 Binghttps://cn.bing.com/search?q=sublime+%E5%88%A0%E9%99%A4%E9%87%8D%E5%A4%8D%E8 ...

  7. vim 显示行号 临时&永久

    设置vim 永久显示行号 - electrocrazy的博客 - CSDN博客https://blog.csdn.net/electrocrazy/article/details/79035216 v ...

  8. ASP中如何将数据库内容导入到数组?并进行字符串对比

    dim Arr sql1="select id from [aaa] where reader not like '%"&userid&"%'" ...

  9. 按钮显示隐藏div、input等

    <script type="text/javascript"> function show() { var value = document.getElementByI ...

  10. ES6深入浅出-10 ES6新增的数据类型-1.Symbol与隐藏属性

    ES5现有的数据类型.7种数据类型. 新的类型是属于Object 最普通的类型.plain object 数组array 函数function 下面这些都属于Object类型. 今天要讲的 set类型 ...