2016-09-25 41 views
0

对于我表中的每一行,我都有一个关联的数字范围。例如,在第1行中 - 在“范围”列中,范围为1-5。如何将一系列值分类为标准化的值范围?

我想要做的是将'范围'映射到标准化的桶中。所以,标准化的桶的范围为0-3,3-7等等。所以,基于1-5的范围,我希望SQL返回0-3作为标准化范围。

输入行:

Col1 Col2  
John 6-12 

预期结果:

Col1   Col2  Standardized Col3 
John   6-12   7-15 

我在为如何在SQL代码这样的损失 - 谁能帮助?

+0

我建议扩大你的问题,以显示输入行和预期输出。 – EvilTeach

+1

编辑您的问题并显示样本数据和所需结果,并用您正在使用的数据库标记问题。 –

回答

0

您可以使用情况

select case range 
     when betweeen 0 and 3 then 1 
     when between 4 and 7 then 2 
     else 3 
     end 
from my_table 

select Col1, Col2, case range 
     when '1-5' then '0-3' 
     when '6-12' then '7-15' 
     else '16-22' 
     end as Standardized 
from my_table 
+0

问题不是像那样黑/白。例如,如果一行具有范围(6-12),并且标准化存储区的选项是0-3,3-7和7-12,那么我希望该行返回7-12作为标准化范围大部分重叠。 –

+0

解释更好的问题添加适当的数据样本和预期的结果。 – scaisEdge

+0

我在问题中添加了数据示例 –

相关问题