Azure Stream Analytics:如何将bigint转为float并强制类型?
问题:如何强制将Min/Max字段转为float类型?
原始数据示例
{ "ClientStateOrProvince": "Noord-Holland", "ClientType": "PC", "IKey": "6ca435d6-f333-4888-9288-8e3170a12664", "ItemCount": 1, "Max": 2, "Min": 2 }
注:上述JSON中Min和Max为整数,但实际场景中这两个字段也可能是小数。
遇到的问题
在门户编辑器测试查询时,已使用CAST(Min AS float) AS Min语句尝试将Min转为float类型,但测试结果面板中Min和Max仍显示为bigint类型,执行的SQL代码如下:
SELECT [...] CAST(Min AS float) AS Min, Max FROM Input
解决方案
- 补全Max字段的类型转换:你的SQL仅对Min做了CAST转换,Max仍保留原始的bigint类型,需同步对Max执行转换:
SELECT [...] CAST(Min AS float) AS Min, CAST(Max AS float) AS Max FROM Input - 尝试用CONVERT替代CAST:部分查询引擎对CONVERT的类型识别更明确,语法如下:
SELECT [...] CONVERT(float, Min) AS Min, CONVERT(float, Max) AS Max FROM Input - 清空查询缓存并重新执行:部分门户编辑器会缓存之前的结果结构,导致新的转换结果未及时刷新,可尝试清空缓存后重新运行查询。
- 使用TRY_CAST确保转换有效性:如果存在无法转换的异常值,用TRY_CAST可避免查询失败,同时保证有效数据转为float:
SELECT [...] TRY_CAST(Min AS float) AS Min, TRY_CAST(Max AS float) AS Max FROM Input
内容的提问来源于stack exchange,提问作者Krumelur
相关产品推荐
相关产品推荐

