SAS Proc SQL 字符串截断问题

SAS Proc SQL string truncation issue

根据下面另一个 table 中的值创建一个简单的 table:

create table summary3 as
    select 
        substr(&Start_dt.,1,4) as time_range, 
        NFDPs ,
        NFDPExceeds,
        NblkExceeds,
        NFDPExceedsLT30s as NFDPExceedsLT30,
        NReports as Nbr_report ,
        prcnt_FDP_ext ,
        prcnt_blk_ext , 
        prcnt_extLT30 as prcnt_ext_LT30,
        prcnt_report,
        monotonic() as id
    from OAP_exceedances_by_year;

我的问题出现在我创建的第一个专栏 time_range 上。当我稍后尝试向此 table 添加值时,我注意到此列被限制为长度为 4 或更短的字符,并且它会自动截断任何更大的字符。有没有办法可以更改第一条语句,或者我将来的插入/设置语句以避免截断? IE 我仍然希望第一行只有 4 个字符,但我可能需要以后的行更多。

谢谢!

这取决于您以后的处理方式。如果您稍后的数据步骤显示

data summary_final;
  set summary3;
  time_range = "ABCDEF";
run;

那么你可以这样改:

data summary_final;
  length time_Range ;
  set summary3;
  time_range = "ABCDEF";
run;

但是你当然也可以在最初的拉动中按照你说的去做。例如...

proc sql;
  create table namestr as 
  select substr(name,1,4) as namestr length=8
  from sashelp.class;
quit;

即使其中包含 substr(1,4),也会将 namestr 创建为 length=8;那里的名称将被截断,正如 substr 要求的那样,但未来的名称将被允许为 8 长。