如何在一系列字串之間捕獲資料?
我在一列中有以下資料:基本上,洗掉“事件型別:”之前和“外部警報 ID:”之后的所有資料:“事件型別:”沒有特定數量的字符。
HOSTNAME: sample.com INCIDENT TYPE: SampleSiteUpDown SOURCED FROM External External ALARM ID: 57536
我只想顯示事件型別值
Incident Type
SampleSiteUpDown SOURCED FROM External
uj5u.com熱心網友回復:
假設您的訊息具有以下固定格式:
HOSTNAME: ... INCIDENT TYPE: ... ALARM ID:
我們可以在這里使用基本字串函式:
SELECT SUBSTR(msg,
INSTR(msg, 'INCIDENT TYPE:') 15,
INSTR(msg, 'ALARM ID:') -
INSTR(msg, 'INCIDENT TYPE:') - 16) AS incident
FROM yourTable;
這是一個作業演示
uj5u.com熱心網友回復:
看看REGEXP_ SUBSTR查詢,使用類似的東西
SELECT REGEXP_SUBSTR(msg, 'INCIDENT TYPE: (.* SOURCED FROM External)', 1, 1,'', 1) FROM ...
演示
我認為它比其他解決方案更簡潔、更靈活。
uj5u.com熱心網友回復:
一種選擇是使用好的、舊的substr instr組合:
SQL> with test (col) as
2 (select 'HOSTNAME: sample.com INCIDENT TYPE: SampleSiteUpDown SOURCED FROM External External ALARM ID: 57536'
3 from dual
4 )
5 select substr(col, instr(col, 'INCIDENT TYPE:') 15,
6 instr(col, 'External ALARM ID') - instr(col, 'INCIDENT TYPE:') - 16
7 ) result
8 from test;
RESULT
---------------------------------------
SampleSiteUpDown SOURCED FROM External
SQL>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/472528.html
上一篇:使用Pickle保存的機器學習模型無法正確預測文本值
下一篇:即使沒有資料也顯示表中的資料
