1. 程式人生 > >如何使用sql表示正則表示式:[a-z][0-9a-z]

如何使用sql表示正則表示式:[a-z][0-9a-z]

需求描述:

使用sql生成2位字元,遵循正則表示式:[a-z][0-9a-z]
正則表示式含義:
第1位:從a-z順序進行編碼;
第2位:從0-9,a-z進行編碼;

-- 生成演算法
WITH x1 (id
    , cc) AS
    (SELECT 0 AS id
         , CHAR (ascii ('a')) AS cc UNION ALL
    SELECT id + 1 AS id
        , CHAR (ascii ('a') + id + 1) AS cc
    FROM x1
    WHERE id < 25)
    , x2 (
id , cc) AS (SELECT 0 AS id , CHAR (ascii ('0')) AS cc UNION ALL SELECT id + 1 AS id , CASE WHEN id < 9 THEN CHAR (ascii ('1') + id) ELSE CHAR (ascii ('a') + id - 9) END AS cc FROM x2 WHERE id < 35) SELECT b.cc AS trail_id FROM (SELECT a.cc , row_number (
) OVER (ORDER BY a.cc) AS id FROM (SELECT x1.cc + x2.cc AS cc FROM x1 , x2) a WHERE a.cc > '00') b -- WHERE b.id = 1