字符子串到数字以及在连接中解析

时间:2016-06-06 20:32:51

标签: sql join sas

我正在尝试在两个不同格式的两个变量上对proc sql进行内部联接,并且需要对其进行解析。例如,一个表中的一个变量是123SampleEv,另一个表中的另一个变量是123。我只需要加入123,但我无法弄清楚如何在同一语句中将字符串子串转换为数字。这可能吗?

3 个答案:

答案 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