這個問題在這里已經有了答案: 正則運算式匹配特定位置的字符 3 個答案 21 小時前關閉。
請看以下示例:
PRJRNB060
BKRSTX001
GRDADJ001
PRJRNB094
GRDEDN248
PRJRNB001
我想過濾掉第4、5、6個字符是RNB的字串。語法如下:
SELECT * FROM [table_name] WHERE [column_name] LIKE '*regular expression*'
如果第 4、5、6 個字符是 RNB,任何人都可以建議一個正則運算式來查看列并匹配,并相應地過濾掉表?謝謝
uj5u.com熱心網友回復:
您可以在查詢中嘗試此正則運算式:
^.{3}RNB.*$
甲骨文查詢:
SELECT *
FROM table_name
WHERE REGEXP_LIKE (column_name,'^.{3}RNB.*$', 'i');
我已將其'i' 作為最后一個引數。這將使它不區分大小寫。如果您不想這樣做,可以跳過此引數。
演示
uj5u.com熱心網友回復:
Oracle DB 有REGEX_LIKE功能,你可以這樣使用:
SELECT * FROM [table_name] WHERE REGEXP_LIKE(column_name, '^.{3}RNB.{3}$')
uj5u.com熱心網友回復:
您可以SUBSTR()在 where 條件中使用函式作為
WHERE SUBSTR(col,4,3)='RNB'
為了確定從第四個字符開始的子串,取連續的三個字符進行匹配RNB
如果您正在尋找不區分大小寫的匹配項,請使用 as
WHERE UPPER(SUBSTR(col,4,3))='RNB'
uj5u.com熱心網友回復:
詢問:
select * from table_name1
where column_name like '___RNB%'
樣本:
create table table_name1 (column_name varchar2(30));
insert into table_name1 values ('PRJRNB060');
insert into table_name1 values ('BKRSTX001');
insert into table_name1 values ('GRDADJ001');
insert into table_name1 values ('PRJRNB094');
insert into table_name1 values ('GRDEDN248');
insert into table_name1 values ('PRJRNB001');
結果:
PRJRNB060
PRJRNB094
PRJRNB001
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/466323.html
下一篇:Oracle中的回圈記錄
