我在工作中遇到这样的问题:
某些系统需要特定的输入,例如:
0000051420189999999 ABC12345678<20 SPACES>;
这是(some digit)
+ Sample_Date
+ (some digit)
+ x amount of spaces
+ Sample_KEY
+ y amount of spaces
。
我阅读了一些关于字符串连接和将日期转换为字符串的在线帖子。但最后总是消除尾随空格。
PROC SQL;
CREATE TABLE WORK.MAINFRAME_FILE AS
SELECT CAT('0000',
COMPRESS(PUT((Sample_Date), MMDDYY10.), '/',),
'9999999 ',
Sample_KEY,
' ')
AS INPUT FORMAT=$100.
FROM WORK.TEST
;
QUIT;
如何在末尾添加一些尾随空格,比方说20?感谢
答案 0 :(得分:2)
如果您将其放入SAS数据集中,只要字段长度足够定义,空格就会自动存在。根据定义,所有SAS列都是空间填充到全长。你可能看不到它们,这取决于你如何看待这个领域,但它们在内部存在。
如果您将它放入SQL Server表或类似表中,它可能取决于您连接到的特定RDBMS以实现此目的。
SAS示例 - 注意x
的ascii表示'20'x是空格:
PROC SQL;
CREATE TABLE WORK.MAINFRAME_FILE AS
SELECT CAT('0000',
COMPRESS(PUT((today()), MMDDYY10.), '/',),
'9999999 ',
Name,
' ')
AS INPUT FORMAT=$100.
FROM SASHELP.CLASS
;
QUIT;
data your_file;
set work.mainframe_file;
x = substr(input,60,1);
put x= $HEX2.;
run;