PGSQL_数字转换成字符串去尾0
应用场景
当前钢板存储厚度,字段是numeric(20, 2)类型;型材存储规格,字段是varchar(50)类型。
现在做拼接,若钢板类型就是名称厚度,若型材类型就是名称规格。
根据拼接的数据做过滤,即对名称厚度(名称规格)做过滤。
实现举例
-
例如表中有两条数据:
-
名称(name)=钢板一号,厚度(thick)=100.00,类型(bigType)=1
-
名称(name)=型材一号,规格(spec)=10*10,类型(bigType)=2
-
现在要搜索拼接后是‘钢板一号100’的数据
-
假设直接contact()函数拼接做过滤,contact(name,case bigType 1 when thick::text else spec end)='钢板一号100',这样是搜不到结果数据的,因为100.00直接强转成text类型的结果是'100.00',而非'100'
-
解放方法:通过rtrim()函数去尾部'0'的,rtrim('100.00','0')的结果是'100',rtrim('100.560','0')的结果是'100.56'
SELECT *
FROM tb
WHERE concat(name,(rtrim(round(thick,2)::TEXT,'0')::NUMERIC)::TEXT ELSE spec END )='钢板一号100'
浙公网安备 33010602011771号