如何在Postgresql中从最大值3的最后两位中获取最大值?
我想把一些数字删减到两位数,然后从中得到最大值 我的表列称为“千”(int4),其值如下:如何在Postgresql中从最大值3的最后两位中获取最大值?,postgresql,max,trim,digits,Postgresql,Max,Trim,Digits,我想把一些数字删减到两位数,然后从中得到最大值 我的表列称为“千”(int4),其值如下: 912 905 九百 十一, 七, 六, 我希望收到值12,因为在将数字修剪为最多两位数后,912应转换为高于11的12,但我使用查询收到7: SELECT MAX(RIGHT("thousands"::varchar, 2)) FROM "numbers" 我猜当值的位数少于请求的位数时,RIGHT([string],[number of digits f
- 912
- 905
- 九百
- 十一,
- 七,
- 六,
SELECT MAX(RIGHT("thousands"::varchar, 2))
FROM "numbers"
我猜当值的位数少于请求的位数时,RIGHT([string],[number of digits from RIGHT to left])会出错,但我不知道如何实现所需的解决方案。有人能帮忙吗?
RIGHT()
返回文本
输出。因此,MAX()。按此顺序,7
位于12
之后,因为7>1
(1
作为12
的第一个字符)。为了避免这种情况,您可以在使用MAX()
之前将RIGHT()
结果强制转换为int
类型:
更好更快的方法是使用数字运算,而不是双重铸造你的价值观。因此,可以使用模运算%
计算数字的最后一位到:
SELECT
MAX(thousands % 100)
FROM t
从“数字”中选择MAX(右(“千”::varchar,2)::int)此选项也适用。非常感谢你!非常感谢您,先生!
SELECT
MAX(thousands % 100)
FROM t