我正在尝试在 SAS 结构中为金融系统数据构建数据模型。这个想法是将 ID 作为字符表达式保存在表中,然后从另一个表中为它们构建一个proc sql
with -应该以表达式开头。应该看起来像这样:INNER JOIN
LIKE
IDs
'ID%'
proc sql
proc sql;
SELECT I.*
FORM tableWithIDs X INNER JOIN tableWithData I
ON I.ID LIKE X.ID||'%'
;
quit;
Run Code Online (Sandbox Code Playgroud)
不幸的是,它应该看起来像这样:... LIKE 'X.ID%'
有没有办法在 SAS 代码中构建这样的表达式?
我的问题是在下面的例子中val = val >> 2;
做了什么?那是我相信它是4分裂.
int val = 12345678;
val = val >> 2;
Run Code Online (Sandbox Code Playgroud)
这是这个问题的背景.
我有一个水表的读数,比如12345678.我们的水表工作的方式是两个右手数字被扔掉读取,所以123456真的是读.(有理由丢掉两个与水流如何使寄存器转动有关的右手数字.但这与我的问题无关.)
目前,我们采用12345678并将它除以100,使用4GL整数变量,所以我没有得到十进制数.我们正在进行截断,我们没有想到,我正在尝试确定位移是否会更好.
在将读取截断为123456之后,使用最后一次读取(也是截断的)计算增量,并从中生成消耗.
我在Informix 4GL中可以使用C,我相信删除最低两位数的最佳方法是向右移位2.我相信这是我将获得的唯一方法 - 例如 -
5 digit meter 12345 --> 123
6 " " 123456 --> 1234
7 " " 1234567 --> 12345
Run Code Online (Sandbox Code Playgroud)
谢谢你容忍一个简单的问题.我们试图找出一个问题,即端点 - 与仪表交谈 - 是如何编程的,以及数据实际上意味着什么来自端点.
需要我的4gl程序:
假设我有一个包含电话号码和姓名的表格.可以有2个人使用相同的电话号码,或2个姓名和1个电话号码.
我需要在表格中选择每个电话号码中的一个.
我做了:
SELECT DISTINCT phone_number, last_name FROM table
Run Code Online (Sandbox Code Playgroud)
结果将显示2条记录.即使电话号码是相同的,因为名称不同,它不再是唯一的.如何获得唯一的电话号码,无论其last_name如何?(但我也希望得到姓氏.我不在乎哪一个)
这是我当前的代码
def var hbTT as handle.
for each Cust:
hbTT:buffer-create().
assign
hbTT::Name = Cust.Name
hbTT::address = Cust.Address.
end.
Run Code Online (Sandbox Code Playgroud)
现在我想做的是遍历 hbtt。我怎样才能做到这一点?
我试过
for each hbTT:
/* Do something */
end.
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
未知或不明确的表 hbTT。(725)
谢谢你
我想类型的变量转换VARCHAR
到INTEGER
,反之亦然(即从INTEGER
类型到VARCHAR
Informix中的4GL).
说我有以下查询:
insert into myTable values ("TEST 1
TEST 2")
Run Code Online (Sandbox Code Playgroud)
然后,我选择描述以输出到Excel工作表:
select description from myTable
Run Code Online (Sandbox Code Playgroud)
结果:
说明测试1
测试2
这将导致单行描述列的输出在.xls输出中分为两行。
我该如何解决这个问题,所以我会在1行上得到整个字符串。
我们可以循环通过它,找到回车并更换它吗?要么?
谢谢。
如何在SAS的PROC SQL中使用名称('库名称')中的空格列?
proc sql outobs=10;
select *
from sashelp.vtable
where library name = xxx
;
run;
Run Code Online (Sandbox Code Playgroud)
我试过了:
proc sql outobs=10;
select *
from sashelp.vtable
where 'Libname'n = test_lin;
quit;
proc sql outobs=10;
select *
from sashelp.vtable
where 'library name'n = test_lin;
quit;
proc sql outobs=10;
select *
from sashelp.vtable
where libname = test_lin;
quit;
Run Code Online (Sandbox Code Playgroud)
错误:在贡献表中找不到以下列:test_lin.
变量名称:libname
变量标签:库名称
我正在尝试导入一个 .csv 文件以匹配数据库中的记录。但是,数据库记录有前导零。这是一个字符字段 数据量有点高的一面。这里数据库中字段的长度是 x(15)。
我面临的问题是 .csv 文件包含像示例 AB123456789 这样的数据,其中数据库字段具有 "00000AB123456789" 。
我正在将 .csv 导入到字符变量中。
有人可以让我知道我应该怎么做才能使用进度查询获取前缀零吗?
谢谢你。