Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

apakah mungkin untuk memiliki generator urutan alfanumerik di sql

Anda dapat membuat fungsi seperti ini:

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;

dan kemudian gunakan seperti ini:

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

Atau, tanpa membuat fungsi:

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. SQL - Temukan pernyataan yang memasukkan nilai tertentu

  2. Tampilan Terwujud - Mengidentifikasi penyegaran terakhir

  3. ORA-01460:permintaan konversi yang tidak diterapkan atau tidak masuk akal

  4. cara menggunakan entri tns dengan driver macromedia untuk Oracle

  5. Apa Presisi dan Skala default untuk Angka di Oracle?