2017-02-14 239 views
0

我運行下面的代碼,這是應該來比較SAS數據集的兩列對我來說:CONVERT語句SAS PROC SQL

PROC SQL; 

CREATE TABLE loandata.tv_curve AS 
SELECT DISTINCT CONVERT(INT, srp_contract_lifetime) as srp_contract_lifetime, rpa_tv 
FROM loandata.sas_f_risk_parameter_cn 
WHERE rpa_tv IS NOT NULL 
ORDER BY CONVERT(INT, srp_contract_lifetime); 

QUIT; 

然而,當我運行此代碼我碰到下面的錯誤消息:

ERROR: Function CONVERT could not be located. 
ERROR: Function CONVERT could not be located. 
ERROR: The following columns were not found in the contributing tables: INT. 

如何將srp_contract_lifetime變量正確轉換爲int?

回答

1

CONVERT是TSQL(Microsoft SQL Server)函數,而不是函數。在SAS中,您使用inputput進行轉換。

PROC SQL; 

CREATE TABLE loandata.tv_curve AS 
SELECT DISTINCT input(srp_contract_lifetime,12.) as srp_contract_lifetime, rpa_tv 
FROM loandata.sas_f_risk_parameter_cn 
WHERE rpa_tv IS NOT NULL 
ORDER BY input(srp_contract_lifetime,12.); 

QUIT; 

正如Gordon指出,這可能甚至不需要,因爲SAS只有數字和字符。如果存儲爲字符,則只能使用input;否則刪除它。

1

SAS只有數字(浮點)和固定長度的字符串。

如果你的變量是一個數字,它只有整數值,那麼沒有什麼可以轉換的。如果要刪除小數部分,則可以使用INT(),FLOOR(),CIEL()或ROUND()函數,具體取決於您希望如何進行轉換。

如果你的變量是一個字符串,那麼你可以使用INPUT()或INPUTN()函數。