难以对包含数字和非数字数据的雪花数据进行排序

问题描述 投票:0回答:1

我在 Snowflake 中有一个查询,其中我返回数字和 varchar 值,并且正在努力使排序正常工作。

对于上下文,此列是通过将两个现有列的值相除来计算的,并且将显示数字,除非计算中的某些内容无效。例如,如果计算尝试除以零,单元格将显示一条错误消息来指示这一点。但是,如果计算有效,则会显示数值。

我在处理这些数据的排序时遇到困难。

这是我到目前为止所拥有的,但它返回排序列表的开头和结尾的 varchar 值。但是,我只希望这些 varchar 值显示在列表的开头。

SELECT * FROM your_table ORDER BY 
 CASE 
     WHEN ISNUMERIC("myfield") = 0 THEN 0 
     ELSE 1 
 END,
 CASE 
     WHEN ISNUMERIC("myfield") = 0 THEN "myfield"
     ELSE NULL
 END,
 TRY_CAST("myfield" AS FLOAT)
snowflake-cloud-data-platform sql-order-by
1个回答
0
投票

先按数字排序,然后按

myfield
值排序:

SELECT * 
FROM your_table 
ORDER BY TRY_CAST("myfield" AS FLOAT), "myfield";
© www.soinside.com 2019 - 2024. All rights reserved.