2017-02-14 6 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 вы делаете конверсии с использованием input и put.

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().

 Смежные вопросы

  • Нет связанных вопросов^_^