我正在尝试在两个不同格式的两个变量上对proc sql进行内部联接,并且需要对其进行解析。例如,一个表中的一个变量是123SampleEv
,另一个表中的另一个变量是123
。我只需要加入123
,但我无法弄清楚如何在同一语句中将字符串子串转换为数字。这可能吗?
答案 0 :(得分:0)
是的,你可以。
在Oracle中,您可以使用substr()函数获取所需字符串的一部分,您可以使用to_number()将其转换为数字。我确信与其他数据库类型有类似的方法。
答案 1 :(得分:0)
我认为您使用的是SAS,因此您的解决方案是使用可用的SUBSTR
功能。
以下是它的使用方法:
PROC SQL;
SELECT SUBSTR('123SampleEv',1,3) FROM YOUR_TABLE;
/* Outputs '123' */
SELECT INPUT(SUBSTR('123SampleEv',1,3),3.) FROM YOUR_TABLE;
/* Outputs 123 */
QUIT;
SUBSTR
函数需要2或3个参数。在您的情况下,您将使用这3:
SUBSTR(
[value as string],
[starting position as number], /* (starts with 1, not 0) */
[length as number] /* how many characters should be returned */
)
这是该功能的文档:http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000212267.htm
请记住,如果您正在匹配或加入此项,您可能需要转换为适当的类型。例如,如果另一个值属于NUMERIC
数据类型,则可能需要使用INPUT()
将此输出转换为NUMERIC
。
答案 2 :(得分:0)
完全有可能 - 您只需要在联接中的 var elements = [ { data: {id: 'n1'} }, { data: {id: 'n2'} }, { data: {id: 'n3'} }, ];
cy.add(elements);
cy.on('add',function(evt){
console.log('Element Added')
})
语句中使用substr
函数,并使用on
函数将子字符串结果转换为数字值。 / p>
input