ERROR 22-322:语法错误,应为以下之一:使用 CAST
ERROR 22-322: Syntax error, expecting one of the following: using CAST
我正在尝试在 proc SQL 中使用 SAS 中的某些 SQL 代码。 DB2 中的原始代码具有此功能,运行良好。
我在 as
处收到以下语法错误
541 as NC_2,SUM ( CASE WHEN A.R_1='N' AND A.R_2='N' AND A.R_4='Y' then 1 else 0
541 ! end ) as NC_4 FROM ( SELECT CASE WHEN (LENGTH(TRIM(TRANSLATE(cast(ABC_CT as char(4000)), '
__
22
202
541 ! ',
ERROR 22-322: Syntax error, expecting one of the following: !, !!, &, (, ), *, **, +, ',', -, '.', /, <, <=, <>, =, >, >=, ?, AND,
BETWEEN, CONTAINS, EQ, EQT, GE, GET, GT, GTT, IN, IS, LE, LET, LIKE, LT, LTT, NE, NET, NOT, NOTIN, OR, ^, ^=, |, ||,
~, ~=.
ERROR 202-322: The option or parameter is not recognized and will be ignored.
有人可以帮助我吗?
sas 中不存在强制转换函数。如果您直接从 sas.
访问 db2 table,这可能是个问题
CAST 是一个 conversion/type 函数 - 即以这种格式输入。在 SAS 中,translate 是替换出现的字母,因此不是同一类函数。
我认为您正在寻找将数字转换为字符的 PUT 函数,假设 ABC_CT 是数字。
put(ABC_CT, 4000.)
或者您可以使用 SQL PASS THROUGH,这将 运行 DB2 代码直接在 DB2 服务器上并使用 DB2 语法。
文档中的语法类型示例:
proc sql;
connect to db2 as db1 (database=sample);
select *
from connection to db1
(select
* from sasdemo.customers
where
customer like '1%');
disconnect from db1;
quit;
http://support.sas.com/documentation/cdl/en/acreldb/63647/HTML/default/viewer.htm#a001348730.htm
我正在尝试在 proc SQL 中使用 SAS 中的某些 SQL 代码。 DB2 中的原始代码具有此功能,运行良好。 我在 as
处收到以下语法错误541 as NC_2,SUM ( CASE WHEN A.R_1='N' AND A.R_2='N' AND A.R_4='Y' then 1 else 0
541 ! end ) as NC_4 FROM ( SELECT CASE WHEN (LENGTH(TRIM(TRANSLATE(cast(ABC_CT as char(4000)), '
__
22
202
541 ! ',
ERROR 22-322: Syntax error, expecting one of the following: !, !!, &, (, ), *, **, +, ',', -, '.', /, <, <=, <>, =, >, >=, ?, AND,
BETWEEN, CONTAINS, EQ, EQT, GE, GET, GT, GTT, IN, IS, LE, LET, LIKE, LT, LTT, NE, NET, NOT, NOTIN, OR, ^, ^=, |, ||,
~, ~=.
ERROR 202-322: The option or parameter is not recognized and will be ignored.
有人可以帮助我吗?
sas 中不存在强制转换函数。如果您直接从 sas.
访问 db2 table,这可能是个问题CAST 是一个 conversion/type 函数 - 即以这种格式输入。在 SAS 中,translate 是替换出现的字母,因此不是同一类函数。
我认为您正在寻找将数字转换为字符的 PUT 函数,假设 ABC_CT 是数字。
put(ABC_CT, 4000.)
或者您可以使用 SQL PASS THROUGH,这将 运行 DB2 代码直接在 DB2 服务器上并使用 DB2 语法。 文档中的语法类型示例:
proc sql;
connect to db2 as db1 (database=sample);
select *
from connection to db1
(select
* from sasdemo.customers
where
customer like '1%');
disconnect from db1;
quit;
http://support.sas.com/documentation/cdl/en/acreldb/63647/HTML/default/viewer.htm#a001348730.htm