gpt4 book ai didi

sql - 选择一个数字列作为字符串

转载 作者:行者123 更新时间:2023-12-04 09:34:49 25 4
gpt4 key购买 nike

是否可以在 sas 中使用 proc sql 选择数字列作为字符串?
例如,我有这张表(table_1):

+------+------+------+--------------+--+
| id_1 | id_2 | id_3 | date | |
+------+------+------+--------------+--+
| 3 | 7 | 3 | 25/06/2017 | |
| 4 | 11 | 9 | 25/06/2020 | |
+------+------+------+--------------+--+
id_1、id_2 和 id_3 可以是数字或字符串。
我想创建一个表(table_2),其中这三列应该将字符串作为类型
我写了这段代码:
proc sql;

Create table table_2 as

select date, Convert(varchar(30),a.id_1), Convert(varchar(30),a.id_2), Convert(varchar(30),a.id_3)

from table_1 a

;quit;
但它不起作用

最佳答案

最好的解决方案是修复您的上游流程,以始终使用一致的类型生成变量。
在 SAS 中,您可以使用 PUT() 函数将值转换为字符串,只需使用适合变量类型的 FORMAT。例如,如果您的变量是数字,但它的长度应该是 9 位数字并带有重要的前导零,那么您将需要使用 Z9。格式来转换它并表示前导零。

 select put(id_1,z9.) as id_1  
如果您想在不知道变量类型的情况下将数字或字符变量转换为字符串,则可以使用 CATS() 函数。但是,您将无法控制如何将数字转换为字符串。使用 LENGTH= 属性强制 SAS 定义长度为 30 的变量。
 select cats(id_1) as id_1 length=30 

关于sql - 选择一个数字列作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62638230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com