2015-10-20 83 views
-2

順序應該看起來像創建字母順序: -如何不使用觸發

A1 
A2 
A3 
B1 
B2 
B3 
C1 
C2 
C3 
+0

'Z3'應該發生什麼? –

+0

你明白你的序列幾乎不可避免地會有差距?通過刪除,未提交的插入等? 而且,正如評論所說,如果表格增長到78行,你該怎麼辦? 如果它是一組固定的數據,並且只是生成一次 - 那麼這並不難。拉利特給出了一個很好的例子。但如果數據是可變的,那麼你可能需要更多地考慮這個問題 –

+0

非常感謝你Lalitji ... –

回答

2

你可以使用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,你可以改變它按您的要求。該示例是根據您的發佈輸出。