Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Postgresql中从最大值3的最后两位中获取最大值?_Postgresql_Max_Trim_Digits - Fatal编程技术网

如何在Postgresql中从最大值3的最后两位中获取最大值?

如何在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

我想把一些数字删减到两位数,然后从中得到最大值

我的表列称为“千”(int4),其值如下:

  • 912
  • 905
  • 九百
  • 十一,
  • 七,
  • 六,
我希望收到值12,因为在将数字修剪为最多两位数后,912应转换为高于11的12,但我使用查询收到7:

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