gpt4 book ai didi

azure - USQL - SQL.ARRAY 获取长度?

转载 作者:行者123 更新时间:2023-12-02 07:08:19 25 4
gpt4 key购买 nike

对于上下文,我从传感器获取数据并将其存储在像这样的字符串中

"axes" : "...,1,23,21,0,12,10,212,12,..."

大小可能会根据发送数据的机器而改变...所以我的目标是将它像 SQL.ARRAY 一样存储,并且我想稍后获取该数组的大小以执行一些业务报告。

有没有办法找到 SQL.ARRAY 的长度?

@outputfile =
SELECT m.MachineID,
COUNT( * ) AS nbAxesArray
FROM MachineInfos AS m
JOIN
LoadDataAxes AS lda
ON m.EventIoTID == lda.EventIoTID
//WHERE getLength(lda.L) == 0 // something like this
GROUP BY m.MachineID;

最佳答案

SQL.ARRAY 复杂类型有许多方法,例如 Count 并实现 IEnumerable在引擎盖下*。

一个简单的例子:

DECLARE @outputFile string = @"output/output.csv";

@input =
SELECT *
FROM ( VALUES
( 100, "1,23,21,0,12,10,212,12" ),
( 101, "7,8,9" )
) AS x(rowId, y);


// Convert the string to array
@working =
SELECT rowId, new SQL.ARRAY<string>(y.Split(',')) AS z
FROM @input;


/*
// Explode the array to individual rows
@output =
SELECT b
FROM @working
CROSS APPLY
EXPLODE(z) AS a(b);
*/

@output =
SELECT rowId, z.Count AS c
FROM @working;


OUTPUT @output
TO @outputFile
USING Outputters.Csv(quoting:false);

*(我认为)

我的结果:

Results

其他一些例子here 。这有帮助吗?

关于azure - USQL - SQL.ARRAY 获取长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50982085/

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