如何不使用触发
答
你可以使用ROW发电机技术做到这一点。
SQL> WITH data
2 AS (SELECT Chr(65 + LEVEL - 1) str
3 FROM dual
4 CONNECT BY LEVEL <= 3)
5 SELECT str
6 ||column_value AS alphanumeric_sequence
7 FROM data,
8 TABLE(Cast(MULTISET (SELECT LEVEL
9 FROM dual
10 CONNECT BY LEVEL < 3 + 1) AS sys.ODCINUMBERLIST));
ALPHANUMERIC_SEQUENCE
-----------------------------------------
A1
A2
A3
B1
B2
B3
C1
C2
C3
9 rows selected.
的LEVEL是硬编码上面3
,你可以改变它按您的要求。该示例是根据您的发布输出。
'Z3'应该发生什么? –
你明白你的序列几乎不可避免地会有差距?通过删除,未提交的插入等? 而且,正如评论所说,如果表格增长到78行,你该怎么办? 如果它是一组固定的数据,并且只是生成一次 - 那么这并不难。拉利特给出了一个很好的例子。但如果数据是可变的,那么你可能需要更多地考虑这个问题 –
非常感谢你Lalitji ... –