メールアドレスの列からドメインを選択しようとしています。
たとえば、次のような電子メールアドレスを持つテーブルemail_tableと列emailがあります。
[email protected]
[email protected]
[email protected]
期待される結果
gmail.com
yahoo.com
gmx.com
SQL Serverでは機能するがDB2では機能しないCHARINDEXで試したクエリは次のとおりです。
select CHARINDEX('@', email) from email_table
Db2(LUWの場合)V11.1以降では、REGEXP_EXTRACT
を使用できます。
例えば。
SELECT REGEXP_EXTRACT(c,'@(.*)$',1,1,'',1)
FROM TABLE(
VALUES
('[email protected]')
,('[email protected]')
,('[email protected]')
) AS t(c)
戻り値
1
-----------------
gmail.com
yahoo.com
gmx.com
3 record(s) selected.