SQL中有没有类似pandas.cut的函数?

Is there any function like pandas.cut in SQL?

我有以下类型的数据库:

My_Variable
20
2
3
13
4
5
31

我知道 python 如果我想把它装箱,我只需这样做:

My_Table['Bin'] = pd.cut(My_Table['My_Variable'],[0, 5, 10, 20, 1000])

我得到的结果是:

My_Variable Bin
20        (10, 20]
2         (0, 5]
3         (0, 5]
13        (10, 20]
4         (0, 5]
5         (0, 5]
31        (20, 1000]

在SQL中有没有类似的功能可以做到这一点?或者我用这样的东西手动完成:

case
when 'My_Variable'<5 then '(0, 5]'
when ....
end as 'Bin'

感谢您的帮助

您可以使用 case 表达式分配垃圾桶:

select t.*,
       (case when my_variable <= 5 then '(0-5]'
             when my_variable <= 10 then '(5-10]'
             when my_variable <= 20 then '(10-20]'
             when my_variable <= 1000 then '(20-1000]'
        end) as bin
from t;

某些数据库可能具有更专业的功能,但这是一种不受数据库影响的机制。