使用sql划分范围

使用sql划分范围,sql,oracle,Sql,Oracle,我正在运行以下sql SELECT value FROM ppr_price_factor WHERE product_factor_id=3; 它返回如下值 17 25 35 45 我需要像下面这样显示我的结果 value value Range 17 0-17 25 18-25 35 26-35 45 36-45 我可以使用sql来实现这一点吗?我将使用语句来解决相应的问题 您可以使用以下sql作为参考 SEL

我正在运行以下sql

SELECT value FROM ppr_price_factor WHERE product_factor_id=3;
它返回如下值

17

25

35

45
我需要像下面这样显示我的结果

value     value Range
17        0-17

25        18-25

35        26-35

45        36-45
我可以使用sql来实现这一点吗?

我将使用语句来解决相应的问题

您可以使用以下sql作为参考

SELECT value
    ,CASE 
        WHEN value >= 0
            AND value <= 17
            THEN '0-17'
        WHEN value >= 18
            AND value <= 25
            THEN '18-25'
        WHEN value >= 26
            AND value <= 35
            THEN '26-35'
        WHEN value >= 36
            AND value <= 45
            THEN '36-45'
        ELSE '46-'
        END AS valueRange
FROM table1
选择值
案例
当值>=0时
和值=18
和值=26
和值=36
而value可能有助于:

SELECT value,
       TO_CHAR(1 + LAG(value, 1, -1) OVER (ORDER by value)) || '-' || TO_CHAR(value) AS value_range
  FROM your_table
使用以下命令:

SELECT value,
       TO_CHAR(1 + LAG(value, 1, -1) OVER (ORDER by value)) || '-' || TO_CHAR(value) AS value_range
  FROM your_table

等一下!你想根据结果记录动态获取范围吗?是的,我用滞后函数解决了这个问题。你的回答帮助我进入动态范围。再次感谢