PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL:क्या कोई ऐसा फ़ंक्शन है जो बेस -10 इंट को बेस -36 स्ट्रिंग में बदल देगा?

आधार-64 कार्य हैं (जैसे encode ) लेकिन आधार -36 के लिए कुछ नहीं। लेकिन आप अपना खुद का लिख ​​सकते हैं या इसका उपयोग करें :

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;

मुझे लगता है कि आपको खुद से पूछना चाहिए कि क्या इस तरह के डेटा स्वरूपण से निपटने के लिए डेटाबेस सही जगह है, हालांकि, इस तरह के प्रस्तुतिकरण मुद्दों को आपके स्टैक के अंतिम देखने के स्तर के करीब बेहतर ढंग से संभाला जा सकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बड़ी संख्या में रिकॉर्ड चलाने के लिए हमेशा के लिए कार्य करना

  2. बैच डालने में त्रुटि पोस्टग्रेज:संबंध hibernate_sequence मौजूद नहीं है स्थिति 17

  3. PostgreSQL के लिए ट्यूनिंग इनपुट/आउटपुट (I/O) संचालन

  4. डेटाबेस ऑब्जेक्ट्स के बीच निर्भरता देखने के लिए आप अपने डेटाबेस कोड का दस्तावेजीकरण कैसे करते हैं?

  5. Postgresql में जहां क्लॉज में एक उपनाम कॉलम का उपयोग करना