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 长。
根据下面另一个 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 长。