You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术问询:SAS、SQL中移除列值前3字符及生成去OST前缀变量

问题2:提取OST前缀后的内容

如果所有目标变量都以OST开头,那解法和问题1完全一致(截取第4位及以后的内容)。但如果存在非OST开头的变量需要保留原内容,就得加上条件判断:

SAS 实现

data extracted_table;
    set your_source_table;
    /* 先判断前3位是否为OST,是则截取后续内容,否则保留原变量 */
    if substr(original_col, 1, 3) = 'OST' then
        extracted_col = substr(original_col, 4);
    else
        extracted_col = original_col;
run;

要是需要忽略大小写判断,可加上upcase函数:if upcase(substr(original_col,1,3)) = 'OST'

SQL 实现

用CASE语句做条件分支,适配不同数据库:

  • MySQL/Oracle:
SELECT 
    original_col,
    CASE 
        WHEN SUBSTR(original_col, 1, 3) = 'OST' THEN SUBSTR(original_col, 4)
        ELSE original_col
    END AS extracted_col
FROM your_source_table;
  • SQL Server:
SELECT 
    original_col,
    CASE 
        WHEN SUBSTRING(original_col, 1, 3) = 'OST' THEN SUBSTRING(original_col, 4, LEN(original_col))
        ELSE original_col
    END AS extracted_col
FROM your_source_table;

内容的提问来源于stack exchange,提问作者bree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:14:50