Sök…


Introduktion

En av de utmaningar jag mötte när jag först började använda SAS var inte bara att skicka Macro Variable-data till ett PROC SQL-genomgång, utan att få det att lösa ordentligt om det behövdes citat runt det. När du skickar en sträng som värde eller datum / datetime i ett PROC SQL-genomgång måste det troligtvis ha enstaka citat runt sig när det löses.

Jag har hittat de bästa resultaten när jag använder funktionen% BQUOTE för att uppnå detta.

Anmärkningar

Mer information om% BQUOTE-funktionen hittar du här: https://v8doc.sas.com/sashtml/macro/z4bquote.htm

Genomgå med makrovariabel som är ett datum

Först kommer jag att placera mitt datum i en makrovariabel.

OBS: Jag hittar det datum9. fungerar bra med IBM® Netezza® SQL och Transact-SQL. Använd vilket format som fungerar för den typ av SQL du kör.

data _null_;
            call symput('testDate',COMPRESS(put(today(),date9.)));
;RUN;
%PUT &testDate;

Mitt% PUT-uttalande löser: 10MAR2017

Därefter vill jag köra en PROC SQL-genomgång och lösa den makrovariabeln inuti för att ange ett datum.

PROC SQL;
CONNECT TO odbc AS alias (dsn=myServer user=userName password= pass);
CREATE TABLE TableName AS 
SELECT * 
FROM connection to alias
    (
        SELECT *
        FROM
            Database.schema.MyTable
        WHERE
            DateColumn = %bquote('&testDate')
    );
QUIT;

% bquote ('& testDate') kommer att lösa till '10MAR2017' när koden körs.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow