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

एसक्यूएल में अल्फान्यूमेरिक अनुक्रम जेनरेटर होना संभव है

आप इस तरह एक फ़ंक्शन बना सकते हैं:

create function to_base_36 (n integer) return varchar2
is
  q integer;
  r varchar2(100);
begin
  q := n;
  while q >= 36 loop
     r := chr(mod(q,36)+case when mod(q,36) < 10 then 48 else 55 end) || r;
     q := floor(q/36);
  end loop;
  r := chr(mod(q,36)+case when mod(q,36) < 10 then 48 else 55 end) || r;
  return lpad(r,4,'0');
end;

और फिर इसे इस तरह इस्तेमाल करें:

select rownum, to_base_36(rownum)
from dual
connect by level < 36*36*36*36;

या, कोई फ़ंक्शन बनाए बिना:

with digits as
( select n, chr(mod(n,36)+case when mod(n,36) < 10 then 48 else 55 end) d
  from (Select rownum-1 as n from dual connect by level < 37)
)
select d1.n*36*36*36 + d2.n*36*36 + d3.n*36 + d4.n, d1.d||d2.d||d3.d||d4.d
from digits d1, digits d2, digits d3, digits d4


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. खाली तालिका के MAX () को NULL के बजाय 0 के रूप में कैसे व्यवहार करें?

  2. Oracle IF कंडीशन उदाहरण

  3. Oracle में एक पंक्ति का sha1-हैश बनाना

  4. Oracle SQL में एक प्रतिस्थापन () फ़ंक्शन के आउटपुट से अल्पविराम सीमांकित स्ट्रिंग के साथ IN क्लॉज का उपयोग करना

  5. फिक्स एरर "ORA-01790:एक्सप्रेशन में संबंधित एक्सप्रेशन के समान डेटाटाइप होना चाहिए"