PostgreSQL:是否有一个函数可以将base-10 int转换为base-36字符串?

PostgreSQL:是否有一个函数可以将base-10 int转换为base-36字符串?,第1张

概述PostgreSQL中是否有一个函数可以将像30这样的基数为10的数字转换成像你这样的基数36表示? 有base-64功能(例如 encode)但没有base-36功能.但你可以写一个你自己的或 use this one(注意这个链接已经死了,我会把它留下来,因为它是我唯一的归属): CREATE OR REPLACE FUNCTION base36_encode(IN digits bigint Postgresql中是否有一个函数可以将像30这样的基数为10的数字转换成像你这样的基数36表示? 有base-64功能(例如 encode)但没有base-36功能.但你可以写一个你自己的或 use this one(注意这个链接已经死了,我会把它留下来,因为它是我唯一的归属):
CREATE OR REPLACE FUNCTION base36_encode(IN digits bigint,IN min_wIDth int = 0) RETURNS varchar AS $$DECLARE    chars char[];     ret varchar;     val bigint; BEGIN    chars := ARRAY['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'      ];    val := digits;     ret := '';     IF val < 0 THEN         val := val * -1;     END IF;     WHILE val != 0 LOOP         ret := chars[(val % 36)+1] || ret;         val := val / 36;     END LOOP;    IF min_wIDth > 0 AND char_length(ret) < min_wIDth THEN         ret := lpad(ret,min_wIDth,'0');     END IF;    RETURN ret;END;$$LANGUAGE plpgsql IMMUtable;

我认为你应该问问自己数据库是否是处理这种数据格式化的正确位置,但是这样的表现问题可能会更接近堆栈的最终查看级别.

总结

以上是内存溢出为你收集整理的PostgreSQL:是否有一个函数可以将base-10 int转换为base-36字符串?全部内容,希望文章能够帮你解决PostgreSQL:是否有一个函数可以将base-10 int转换为base-36字符串?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1165142.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-01
下一篇2022-06-01

发表评论

登录后才能评论

评论列表(0条)

    保存