SQL: How to return month and character corresponding to an ordinal number in Oracle -
how can return following result? understand how create first column "connect level" query.
for lvl
between 1 , 12, how generate corresponding month? lvl between 1 , 24 (or whatever "chosen" alphabet has), how generate corresponding letter (lower-case character)?
lvl month char 1 jan 2 feb b 3 mar c 4 apr d 5 may e
ok, want know how convert level
month , character...
for month: to_char(to_date(level, 'mm'), 'mon')
for letter it's more complicated. in language c
, char
number , can "char arithmetic" pretty date arithmetic in oracle. however, can't character arithmetic in oracle, or @ least not easily.
the best way create table of "ordinal number, corresponding character" (in whatever language need be) , inner join. there other solutions depend on explicit mappings in character sets; not recommended!
however, if want use ascii letters, can use chr()
, ascii()
functions , arithmetic. example:
select level lvl, to_char( to_date(level, 'mm'), 'mon' ) mnth, chr( ascii('a') + level - 1 ) character dual connect level <= 5; lvl mnth character ---------- ------------ --------- 1 jan 2 feb b 3 mar c 4 apr d 5 may e
Comments
Post a Comment