使用sql进入范围

时间:2014-10-24 09:53:42

标签: 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执行此操作吗?

3 个答案:

答案 0 :(得分:1)

也许有帮助:

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

答案 1 :(得分:0)

我会针对各自的问题使用case语句。

您可以使用以下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

sql fiddle link

答案 2 :(得分:0)

使用此:

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