使用sql划分范围
我正在运行以下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
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
等一下!你想根据结果记录动态获取范围吗?是的,我用滞后函数解决了这个问题。你的回答帮助我进入动态范围。再次感谢