我试图用嵌套来编写SQL select语句and来获取一些数据:
PROC SQL;
CREATE TABLE WORK.TEMP AS
SELECT DISTINCT
(CASE WHEN t1.TYPE_OF_SALE = 'Cake' AND t1.ADD_ON_FLAG = 0 THEN 'Arrangements'
WHEN t1.TYPE_OF_SALE = 'Cake' AND t1.ADD_ON_FLAG = 1 THEN 'Add-ons'
ELSE 'Direct' END) SALE_TYPE, #ERROR IN THIS LINE
(t1.UNIT_PRICE+t1.SERVICE_CHARGE_AMT) AS TOTAL_VAL
FROM WORK.FB_ORDERS t1
ORDER BY SALE_TYPE;
QUIT;
Run Code Online (Sandbox Code Playgroud)
我由于某种原因,得到一个错误在我的第一线,是不是可以使用and一个case statement?
Error Message:
Error 22-322: Syntax error, expecting one of the following: !,!!,&...
Run Code Online (Sandbox Code Playgroud)
这个错误存在于最后 case statement
我认为问题在于SAS需要as定义列别名:
PROC SQL;
CREATE TABLE WORK.TEMP AS
SELECT DISTINCT (CASE WHEN t1.TYPE_OF_SALE = 'Cake' AND t1.ADD_ON_FLAG = 0 THEN 'Arrangements'
WHEN t1.TYPE_OF_SALE = 'Cake' AND t1.ADD_ON_FLAG = 1 THEN 'Add-ons'
ELSE 'Direct'
END) as SALE_TYPE,
(t1.UNIT_PRICE+t1.SERVICE_CHARGE_AMT) AS TOTAL_VAL
FROM WORK.FB_ORDERS t1
ORDER BY SALE_TYPE;
QUIT;
Run Code Online (Sandbox Code Playgroud)
SAS允许列之后的其他表达式,例如FORMAT,所以我认为as需要防止表达式中的歧义.
| 归档时间: |
|
| 查看次数: |
1048 次 |
| 最近记录: |