2017-02-14 8 views
0

Ich bin mit dem folgenden Code, der für mich zwei Spalten eines SAS-Datensatz vergleichen soll:CONVERT-Anweisung in 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; 

Allerdings, wenn ich diesen Code ich folgende Fehlermeldung erhalten, laufen Nachrichten:

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. 

Wie kann ich meine srp_contract_lifetime -Variable korrekt in ein int konvertieren?

Antwort

1

CONVERT ist eine TSQL (Microsoft SQL Server) Funktion, keine Funktion. In SAS führen Sie Konvertierungen mit input und put durch.

Wie Gordon bemerkt, wird dies möglicherweise nicht einmal benötigt, da SAS nur Zahlen und Zeichen hat. Verwenden Sie nur die input, wenn es als Zeichen gespeichert ist; Ansonsten entferne es.

1

SAS hat nur Zahlen (Fließkomma) und Zeichenfolgen fester Länge.

Wenn Ihre Variable eine Zahl ist und nur ganzzahlige Werte hat, dann gibt es nichts zu konvertieren. Wenn Sie den Bruchteil entfernen möchten, können Sie die Funktionen INT(), FLOOR(), CIEL() oder ROUND() verwenden, je nachdem, wie Sie die Konvertierung durchführen möchten.

Wenn Ihre Variable eine Zeichenfolge ist, können Sie entweder die Funktion INPUT() oder INPUTN() verwenden.