PROC SQL SAS 中的长度和连接
Length and concat in PROC SQL SAS
我想在 select 语句中定义某些特定列的长度,并且我想连接两列,即 sponsor id
和 sponsor
,就像 SAS proc 中的 "ABC-123" sql。请帮忙
这是代码
proc sql;
select
project_id,
sponsor_id,
empl_country,
region,
empl_dept_descr,
empl_bu_descr,
sponsor,
full_name,
mnth_name FROM Stage0;
quit;
CATX
函数将连接任意数量、任意类型的参数,去除值并在每个参数之间放置一个公共分隔符(也去除)。例如:
proc sql;
create table want as
select
catx('-', name, age) as name_age length=20
, catx(':', name, sex, height) as name_gender_height
from sashelp.class;
如果 CATX 结果分配给的变量没有指定长度,则新变量的长度将为 200 个字符。
剥离意味着删除前导和尾随空格。缺少值的参数不会成为串联的一部分。
如果您不知道长度,可以使用 strip() 函数删除前导空格和尾随空格,在这种情况下,它将删除由 catx() 默认长度生成的空格:
strip(catx('-', sponsor_id, 赞助商))
代码:
proc sql;
select
project_id,
sponsor_id,
empl_country,
region,
empl_dept_descr,
empl_bu_descr,
sponsor,
full_name,
mnth_name ,
/* New column */
strip(catx('-', sponsor_id, sponsor)) as new_id
FROM Stage0;
quit;
我想在 select 语句中定义某些特定列的长度,并且我想连接两列,即 sponsor id
和 sponsor
,就像 SAS proc 中的 "ABC-123" sql。请帮忙
这是代码
proc sql;
select
project_id,
sponsor_id,
empl_country,
region,
empl_dept_descr,
empl_bu_descr,
sponsor,
full_name,
mnth_name FROM Stage0;
quit;
CATX
函数将连接任意数量、任意类型的参数,去除值并在每个参数之间放置一个公共分隔符(也去除)。例如:
proc sql;
create table want as
select
catx('-', name, age) as name_age length=20
, catx(':', name, sex, height) as name_gender_height
from sashelp.class;
如果 CATX 结果分配给的变量没有指定长度,则新变量的长度将为 200 个字符。
剥离意味着删除前导和尾随空格。缺少值的参数不会成为串联的一部分。
如果您不知道长度,可以使用 strip() 函数删除前导空格和尾随空格,在这种情况下,它将删除由 catx() 默认长度生成的空格:
strip(catx('-', sponsor_id, 赞助商))
代码:
proc sql;
select
project_id,
sponsor_id,
empl_country,
region,
empl_dept_descr,
empl_bu_descr,
sponsor,
full_name,
mnth_name ,
/* New column */
strip(catx('-', sponsor_id, sponsor)) as new_id
FROM Stage0;
quit;