我有一个名为email_id的表 ,列名称为email_id,列中有这些电子邮件 id\xe2\x80\x99s
\n\nname@yahoo.com\nname@msn.com\nname@gmail.com\nname@xmsoftware.com \nRun Code Online (Sandbox Code Playgroud)\n\n我只需要这样的域名作为结果
\n\nyahoo\nmsn\ngmail\nxmsoftware \nRun Code Online (Sandbox Code Playgroud)\n\n还有比这更简单的方法(或)任何其他功能吗?
\n\nselect substr(email_id.email_id,(instr(email_id.email_id,'@',1)+1),(instr(email_id.email_id,'.',1) - (instr(email_id.email_id,'@',1)+1))) as domain \nfrom email_id;\nRun Code Online (Sandbox Code Playgroud)\n
我会比较喜欢REGEXP_SUBSTR
select REGEXP_SUBSTR(email_id,'^.*@(.*)\.(.*)$',1,1,null,1) as domain
FROM emails;-- ^ first match ^ within()
Run Code Online (Sandbox Code Playgroud)