如何从列中的所有值中删除前 3 个字符(SAS、SQL)

问题描述 投票:0回答:4

我有一个以 OMX 开头的变量,但我只需要它后面的值。如何创建一个仅具有 OST 之后值的新变量; 示例:OSTN44X8 必须仅变为 N44X8

proc sql; 
(Select * 
From data01 
WHERE RDATE between '2000-11-01' and '2018-02-25' 
(SELECT SUBSTR(REP_ID,4) AS ID ) ; 
quit; 
sql sas truncate
4个回答
0
投票

您可以使用 SUBSTR 返回正确的字符串。在 SAS 中,最后一个参数是可选的,如果跳过它,它会自动从开始到结束检索。

select substr(REP_ID, 4) as ID

如果是 SQL,你的代码看起来会是这样的。您的 SQL 还有其他几个错误,但我会将这些错误留给您来解决。

如果是数据步骤,请改用以下内容:

ID = substr(REP_ID, 4);

0
投票

你的意思是:

proc sql; 
Select *,
SUBSTR(REP_ID,4) AS ID
From data01 
WHERE RDATE between '2000-11-01' and '2018-02-25' 
; 
quit; 


0
投票

您可以将 len 函数和 subtr 函数组合在一起来获得结果。

Substr(REP_ID,4,len(REP_ID)-4)

0
投票

当您想提及时,您只需为表添加别名*

proc sql; 
 Select a.*,
SUBSTR(REP_ID,4) AS ID
From data01 a
WHERE RDATE between '2000-11-01' and '2018-02-25' 
; 
quit;
© www.soinside.com 2019 - 2024. All rights reserved.