estrae seriale dalla stringa che segue lo schema fuzzy SQL Netezza
Oct 07 2020
per favore, ho un messaggio di log che contiene un seriale con uno schema sfocato difficile da seguire come il seguente
|LogMsg |
|------------------------------------------------------------------------------------------|
|Customer Receive CPE Indoor. serial 21530369847SKA011094, user:ahmed.o.haraz |
|Customer Receive CPE Indoor as change. serial :21530369847SK9078291, user:Abdullah.M160275|
|Customer Receive CPE Indoor. serial:ZTERRT1H9202990 |
|Customer Receive CPE Indoor. serial 21530369847SKB333996 .UserName :TEDST.mohamed.badry |
|Customer Receive CPE Indoor as change. serial :21530373727skc298302, user:Frass.m195577 |
|Customer Receive CPE Indoor. serial 21530369847SKA267112 .UserName :seller.160002 |
Devo estrarre il seriale dalla stringa come di seguito
|Serial|
|21530369847SKA011094|
|21530369847SK9078291|
|ZTERRT1H9202990 |
|21530369847SKB333996|
|21530373727skc298302|
|21530369847SKA267112|
Ho ottenuto la query menzionata usando regexp_replace()ma ne sono mancate alcune
select replace(replace(regexp_extract(logmsg, 'serial [^,]+'), 'serial ', ''), ':', '')
Risposte
2 AniketKulkarni Oct 08 2020 at 02:33
Provare
select get_value_varchar(
regexp_extract_all_sp(logmsg,
'(serial\s*:?)([^,\s]+)'),3) as serial
from serial;
Dovrebbe darti il risultato che stai cercando
SERIAL
----------------------
21530369847SKA011094
21530369847SKA267112
21530369847SKB333996
21530369847SK9078291
ZTERRT1H9202990
21530373727skc298302
(6 rows)