我有一个这样的列:
COLUMN1 4 12 23 6 14 35我想在它旁边创建另一个列,它将显示column1的值落入的范围,如…
你可以这样做:
select col1, concat( floor(col1 / 5) * 5, '-', 5 + floor(col1 / 5) * 5)
你也可以使用'||'运营商:
select col1, floor(col1 / 5) * 5 || '-' || (5 + floor(col1 / 5) * 5))
或者数据库用于字符串连接的任何方法。
选择col1, concat(楼层(col1 / 5)* 5,' - ',5 +楼层(col1 / 5)* 5)
要么 concat(column1-(column1%5), "-", column1-(column1%5)+5)
concat(column1-(column1%5), "-", column1-(column1%5)+5)
假设你想要在里面组合值 0-5 (特殊情况), 6-10 , 11-15 依此类推,只需使用以下查询(为SQL Server编写,但说明了这个想法):
0-5
6-10
11-15
SELECT num, CONCAT( CASE WHEN num <= 5 THEN 0 ELSE FLOOR((num - 1) / 5) * 5 + 1 END, '-', CASE WHEN num <= 5 THEN 5 ELSE FLOOR((num - 1) / 5) * 5 + 5 END ) FROM ...
测试DB小提琴
更换 FLOOR(x / y) 如果可用,使用整数除法运算符 更换 CONCAT 使用适当的字符串连接运算符或函数。
FLOOR(x / y)
CONCAT