2017-02-14 7 views
0

私は私のためにSASデータセットの2つの列を比較することになっている次のコード、実行しています:私はこのコードを実行すると、私は次のエラーを取得する、しかしCONVERT文

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; 

ゴードン氏は、SASには数値と文字のみがあるため、これは必要ではないとも述べています。文字として格納されている場合はinputのみを使用してください。それ以外の場合は削除してください。

1

SASには、数字(浮動小数点)と固定長文字列のみがあります。

変数が数値で、整数値しかない場合、変換するものはありません。小数部分を削除する場合は、変換をどのようにしたいかによってINT()、FLOOR()、CIEL()またはROUND()関数を使用できます。

変数が文字列の場合は、INPUT()関数またはINPUTN()関数を使用できます。