Reputation: 48
I am running following sql.
SELECT value FROM ppr_price_factor WHERE product_factor_id=3;
which returns values like this
17
25
35
45
I need to display my results as something like below.
value value Range
17 0-17
25 18-25
35 26-35
45 36-45
Can I do this using sql?
Upvotes: 0
Views: 53
Reputation: 857
Use this :
SELECT value,
TO_CHAR(1 + LAG(value, 1, -1) OVER (ORDER by value)) || '-' || TO_CHAR(value) AS value_range
FROM your_table
Upvotes: 0
Reputation: 2664
Maybe that helps:
SELECT value,
TO_CHAR(1 + LAG(value, 1, -1) OVER (ORDER by value)) || '-' || TO_CHAR(value) AS value_range
FROM your_table
Upvotes: 1
Reputation: 1371
I would use case statement for the respective problem.
You can use the following sql as a reference
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
Upvotes: 0