如何在 SQL 服务器上执行 %let
How to perform %let on SQL server
我在 SAS 中有一个代码,它与 %LET
宏中的时间段相关联,我这样使用它:
%let month_reference = feb19
proc sql;
create table sales_v01 as select
*
from sales_&month_reference
where sales_code = 99
;run;
我正在使用 %LET
因为还有许多其他正在使用的表需要每月更新这部分代码,所以手动更新它们对我来说太昂贵了。
不过,我正在从 SAS 更改为 RStudio,我在 RStudio 中的 SQL 中进行编程。我想知道如何在这个新系统中执行 %LET
。
我现在有类似的东西
SALES <-
"CREATE OR REPLACE TABLE SALES_V01 AS SELECT
*
FROM SALES_FEB19
WHERE SALES_CODE = 99"
如何将 FEB19
替换为只需要在代码的一部分进行更改而不是在所有使用它的地方更改多次的标准化语句?我如何在 SQL 中的 RStudio 编程中进行引用?
如果您使用 R 生成要传递给数据库的 SQL 代码,则只需使用普通的 R 字符串操作即可。
> month_reference <- "feb19"
> base_code <- "create table sales_v01 as select * from sales_"
> want_code <- paste(base_code,month_reference,sep="")
> want_code
[1] "create table sales_v01 as select * from sales_feb19"
>
我在 SAS 中有一个代码,它与 %LET
宏中的时间段相关联,我这样使用它:
%let month_reference = feb19
proc sql;
create table sales_v01 as select
*
from sales_&month_reference
where sales_code = 99
;run;
我正在使用 %LET
因为还有许多其他正在使用的表需要每月更新这部分代码,所以手动更新它们对我来说太昂贵了。
不过,我正在从 SAS 更改为 RStudio,我在 RStudio 中的 SQL 中进行编程。我想知道如何在这个新系统中执行 %LET
。
我现在有类似的东西
SALES <-
"CREATE OR REPLACE TABLE SALES_V01 AS SELECT
*
FROM SALES_FEB19
WHERE SALES_CODE = 99"
如何将 FEB19
替换为只需要在代码的一部分进行更改而不是在所有使用它的地方更改多次的标准化语句?我如何在 SQL 中的 RStudio 编程中进行引用?
如果您使用 R 生成要传递给数据库的 SQL 代码,则只需使用普通的 R 字符串操作即可。
> month_reference <- "feb19"
> base_code <- "create table sales_v01 as select * from sales_"
> want_code <- paste(base_code,month_reference,sep="")
> want_code
[1] "create table sales_v01 as select * from sales_feb19"
>