2

我有一个名为fee. 里面的值fee是这样的: Jan,Feb,MarJan,Feb

...这意味着支付了 1 月至 3 月的费用(第 2 个示例支付了 1 月至 2 月的费用)。

我该如何计算这些费用已支付的月数?IE。对于第一个示例,我希望在第二个示例中获得 3 和 2。

4

1 回答 1

1

如果月份总是由 3 个字符表示,也许你可以使用

SELECT FLOOR((length(fee)+1)/4) FROM table_name;

我们将月数表示为n,请注意逗号的数量比n少 1 ,因为字符串末尾没有一个。所以这个字段的长度,即“费用”可以表示为 3*n + (n-1),表示为N,所以我们可以将N加 1除以 4。地板向下四舍五入得到最接近的整数。在这种情况下可以删除。

SELECT length(fee)+1)/4 FROM table_name;

会得到正确答案,length() 是一个返回字符串长度的函数。

于 2013-03-21T10:35:28.907 回答