```sql
一层一层往下套吧,如果是oracle得话很简单·····
SELECT CASE WHEN INSTR(SUBSTR(ID,INSTR(ID,'@')+1 ),'@')-1= 11 THEN SUBSTR(ID,INSTR(ID,'@')+1 ,INSTR(SUBSTR(ID,INSTR(ID,'@')+1 ),'@')-1)
WHEN INSTR(SUBSTR(ID,INSTR(SUBSTR(ID,INSTR(ID,'@')+1 ),'@')+3),'@')-1 = 11 THEN SUBSTR(SUBSTR(ID,INSTR(SUBSTR(ID,INSTR(ID,'@')+1 ),'@')+3),1,INSTR(SUBSTR(ID,INSTR(SUBSTR(ID,INSTR(ID,'@')+1 ),'@')+3),'@')-1)
END A , ID
FROM (
SELECT 'E@183.231.14@18434393264@12937120' AS ID UNION ALL
SELECT 'E@121.231.11.2@19034393234@1293712414@2141421111' UNION ALL
SELECT 'E@111.231.11.2@1293712414@2141421111@18854393234' UNION ALL
SELECT 'E@18854393234@1293712414@2141421111' ) A
```
select regexp_substr(opstaion,'\d{11}') from a