我試圖根據數據集中一列字符串創建一組標誌。該字符串有成千上萬的唯一值,但我想創建只有一個小子集(比如10)的標誌。我想使用SAS宏變量來做到這一點。我嘗試了許多不同的方法,其中沒有一個能夠奏效。這裏是一個似乎最簡單和最合乎邏輯的我的代碼,但它仍然沒有工作:使用SAS宏變量在PROC中創建變量名稱SQL
%let Px1='12345';
PROC SQL;
CREATE TABLE CLAIM1 AS
SELECT
b.MEMBERID
, b.ENROL_MN
, CASE WHEN (a.PROCEDURE = &Px1.) THEN 1 ELSE 0 END AS CPT_+&Px1.
, a.DX1
, a.DX2
, a.DX3
, a.DX4
FROM ENROLLMENT as b
left join CLAIMS as a
on a.MEMBERID = b.MEMBERID;
QUIT;
顯然,在這個代碼只有一個標誌,但一旦我弄明白的想法是,我會增加額外的宏變量和標誌。以下是錯誤消息我得到:
8048 , CASE WHEN (PROCEDURE= &Px1.) THEN 1 ELSE 0 END AS CPT_+&Px1.
-
78
ERROR 78-322: Expecting a ','.
看來,問題的原因與字符串CPT_與宏變量組合。正如我所提到的,我嘗試了幾種方法來解決這個問題,但都沒有成功。
在此先感謝您的幫助。
這是TSQL不是SAS的實現,所以這個不相關的。 SAS完全不同。 – Joe