Google bigquery 范围上的OrderBy Coulmn(类型字符串)查询
我有BQ表,它有范围列。值类似于Google bigquery 范围上的OrderBy Coulmn(类型字符串)查询,google-bigquery,Google Bigquery,我有BQ表,它有范围列。值类似于(0-50100-150200-2501000-1200,>=400) 当我在这个专栏上做orderBy时,我得到的是字典顺序,比如(0-50100-1501000-1200200-250,>=400) 但我希望它按数字排序,如(0-50100-150200-250,>=4001000-1200)。 有人能帮我创建这个查询吗。您可以使用下面示例中的方法 #standardSQL with data as ( select '0-50' range_col un
(0-50100-150200-2501000-1200,>=400)
当我在这个专栏上做orderBy时,我得到的是字典顺序,比如(0-50100-1501000-1200200-250,>=400)
但我希望它按数字排序,如(0-50100-150200-250,>=4001000-1200)。
有人能帮我创建这个查询吗。您可以使用下面示例中的方法
#standardSQL
with data as (
select '0-50' range_col union all
select '100-150' union all
select '200-250' union all
select '1000-1200' union all
select '>=400'
)
select *
from data
order by cast(regexp_extract(range_col, r'\b(\d+)\b') as int64)
有输出
Mikhail,谢谢你的解决方案。它对我有效,但在一个边缘情况下它不起作用。对于(100-150,只需添加
,regexp\u extract(range\u col,r'^