最近作一個項目,須要在7位數字串中,按下列規則選取吉祥號:
一、七位序列號中不能出現數字4
二、七位數字從右向左數,至少要出現3位同樣的數字,並且同樣的數字只能是六、八、9中的任意一個,如1235666。
優化
三、七位數字能夠出現所有相同的數字,如:11111十一、222222二、333333三、555555五、666666六、7777777 項目
在Oracle 10g裏面,咱們能夠輕鬆實現上述要求,一條SQL語句就搞定,以下: di
SELECT *
FROM a
WHERE REGEXP_LIKE (id, '[^4]{4}[6]{3,6}$')
OR REGEXP_LIKE (id, '[^4]{4}[8]{3,6}$')
OR REGEXP_LIKE (id, '[^4]{4}[9]{3,6}$')
OR REGEXP_LIKE (id, '^([0-35-9])\1{6}$');
若是能有優化意見,歡迎隨時提出~ 數字