实现AAAA到ZZZZ

碧水幽幽泉 2010-04-04 07:55:39
现在有这样一个需求,
实现一种编码,实现AAAA-ZZZZ的序列变化!
如:AAAA
AAAB
....
AAAZ
AABA
AABB
....
AABZ
....
ZZZZ

请问,用SQL或PL/SQL该怎么实现?
...全文
765 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
碧水幽幽泉 2010-04-05
  • 打赏
  • 举报
回复
感谢wildwave和tangren
问题已经解决了!
就此结帖!
Adebayor 2010-04-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tangren 的回复:]

SQL code
WITH ch AS
(SELECT chr(LEVEL - 1 + ascii('A')) c FROM dual CONNECT BY LEVEL <= 26)
SELECT a.c || b.c || c.c || d.c FROM ch a, ch b, ch c, ch d;
[/Quote]
这个方法也挺牛的
Adebayor 2010-04-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wildwave 的回复:]

SQL code
select chr(trunc((rownum - 1) / 26 / 26 / 26) + 65) ||
chr(mod(trunc((rownum - 1) / 26 / 26), 26) + 65) ||
chr(mod(trunc((rownum - 1) / 26), 26) + 65) ||
chr(mod(rownum……
[/Quote]
狂顶
不过有点小问题 connect by 改成小于等于就完美了
小灰狼W 2010-04-04
  • 打赏
  • 举报
回复
select chr(trunc((rownum - 1) / 26 / 26 / 26) + 65) ||
chr(mod(trunc((rownum - 1) / 26 / 26), 26) + 65) ||
chr(mod(trunc((rownum - 1) / 26), 26) + 65) ||
chr(mod(rownum - 1, 26) + 65)
from dual
connect by rownum < 26 * 26 * 26 * 26;
tangren 2010-04-04
  • 打赏
  • 举报
回复
WITH ch AS
(SELECT chr(LEVEL - 1 + ascii('A')) c FROM dual CONNECT BY LEVEL <= 26)
SELECT a.c || b.c || c.c || d.c FROM ch a, ch b, ch c, ch d;

3,494

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧