Select

DB2 中的 CHARINDEX 等效項

  • July 18, 2019

我正在嘗試從我擁有電子郵件地址的列中選擇域。

例如,我有一個表 email_table 和一個列 email ,其電子郵件地址如下。

johndoe@gmail.com
jhefid@yahoo.com
ipw@gmx.com

預期結果

gmail.com
yahoo.com
gmx.com

這是我嘗試使用 CHARINDEX 的查詢,該查詢在 SQL Server 中有效,但在 DB2 中無效。

select CHARINDEX('@', email) from email_table

LOCATE(在 DB2 中)相當於CHARINDEX在 SQL Server 中。

是它的完整描述和範例。

謝謝!

在 Db2 (for LUW) V11.1 及更高版本中,您可以使用REGEXP_EXTRACT

https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0061492.html

例如

SELECT REGEXP_EXTRACT(c,'@(.*)$',1,1,'',1) 
FROM TABLE(
   VALUES
    ('johndoe@gmail.com')
   ,('jhefid@yahoo.com')
   ,('ipw@gmx.com')
) AS t(c)

返回

1                
-----------------
gmail.com        
yahoo.com        
gmx.com          

 3 record(s) selected.

引用自:https://dba.stackexchange.com/questions/243145