这是我的代码示例。
PROC SQL;
CREATE TABLE SUCCESS_TIME_INTERVALS AS
SELECT
A.*,
CASE
WHEN A.TIME BETWEEN 9:00:00 AND 11:00:00 THEN '9AM_11AM'
WHEN A.TIME BETWEEN 11:00:00 AND 13:00:00 THEN '11AM_1PM'
ELSE 'OTHER' END AS TIME_INTERVALS
FROM TABLE1 A
;QUIT;
运行代码时出现此错误
ERROR 22-322:语法错误,期待以下之一:!!,*,**, +, - ,/,AND,||。
ERROR 76-322:语法错误,语句将被忽略。
不确定如何解决此问题。
非常感谢
答案 0 :(得分:3)
时间常数需要单引号:
PROC SQL;
CREATE TABLE SUCCESS_TIME_INTERVALS AS
SELECT A.*,
(CASE WHEN A.TIME BETWEEN '09:00:00' AND '11:00:00' THEN '9AM_11AM'
WHEN A.TIME BETWEEN '11:00:00' AND '13:00:00' THEN '11AM_1PM'
ELSE 'OTHER'
END) AS TIME_INTERVALS
FROM TABLE1 A;
QUIT;
显然,如果time
不是字符串,那么你需要恰当地表达常量:
PROC SQL;
CREATE TABLE SUCCESS_TIME_INTERVALS AS
SELECT A.*,
(CASE WHEN A.TIME BETWEEN '09:00:00't AND '11:00:00't THEN '9AM_11AM'
WHEN A.TIME BETWEEN '11:00:00't AND '13:00:00't THEN '11AM_1PM'
ELSE 'OTHER'
END) AS TIME_INTERVALS
FROM TABLE1 A;
QUIT;