在字符串前面添加一个数字 - PROC SQL
Add a Number in Front of the String - PROC SQL
问题很基础,但非常感谢您的意见。
我基本上需要在变量的现有值前面添加'1'(没有space作为分隔符)。这是我迄今为止最好的尝试:
proc sql;
create table as select * from connection to oracle
(
select catx('','1',A.Var_Name) AS "#New_Var" from table_name;
)
quit;
我不太明白你想要什么。如果您在 Oracle 中有一个列并且想要连接一个值,您可以使用:
proc sql;
select '1' || a.Var_Name
from table_name;
quit;
SAS没有"empty string"的概念,所以
select catx('','1',A.Var_Name) AS "#New_Var" from table_name;
等同于
select catx(' ','1',A.Var_Name) AS "#New_Var" from table_name;
CATS
但是会为您删除空格;或者 CATT
如果您只想删除尾随空格。
select cats('1',A.Var_Name) AS New_Var from table_name;
如果你需要比这更复杂的东西(比如 A.Var_Name
有你想保留的尾随空格)那么你需要自己完成 trim 空格然后连接使用连接运算符,就像 Gordon 提到的那样。
另请注意,如果您在 SAS
中执行此操作而不是传递,则您希望对列名使用上述语法,而不是 "#
样式。
问题很基础,但非常感谢您的意见。
我基本上需要在变量的现有值前面添加'1'(没有space作为分隔符)。这是我迄今为止最好的尝试:
proc sql;
create table as select * from connection to oracle
(
select catx('','1',A.Var_Name) AS "#New_Var" from table_name;
)
quit;
我不太明白你想要什么。如果您在 Oracle 中有一个列并且想要连接一个值,您可以使用:
proc sql;
select '1' || a.Var_Name
from table_name;
quit;
SAS没有"empty string"的概念,所以
select catx('','1',A.Var_Name) AS "#New_Var" from table_name;
等同于
select catx(' ','1',A.Var_Name) AS "#New_Var" from table_name;
CATS
但是会为您删除空格;或者 CATT
如果您只想删除尾随空格。
select cats('1',A.Var_Name) AS New_Var from table_name;
如果你需要比这更复杂的东西(比如 A.Var_Name
有你想保留的尾随空格)那么你需要自己完成 trim 空格然后连接使用连接运算符,就像 Gordon 提到的那样。
另请注意,如果您在 SAS
中执行此操作而不是传递,则您希望对列名使用上述语法,而不是 "#
样式。