[英]Oracle - REGEXP_LIKE not giving desired results
有一個字符串列 - COL1,包含用空格分隔的不同長度的單詞,這也可以包含特殊字符。在下面的邏輯推導時,得到不同的結果。
邏輯:如果 COL1 以字母開頭並以字母結尾且不包含任何特殊字符(中間可以包含空格),則標志為 1,否則標志為 0。
COL1 FLAG
Abc gty xyz 1
ab/c bpl ?t 0
qwr .p 0
tiotio iop 1
TItio io/ 0
abc 1
abc xy 1
試過
SELECT CASE WHEN REGEXP_LIKE(COL1,'^[a-zA-Z]$') THEN '1' ELSE '0' END AS FLAG FROM TABLE1;
但錯誤的結果。
這符合您的需要嗎?
select
col1,
case when regexp_like(col1, '^[a-zA-Z][a-zA-Z ]*[a-zA-Z]$')
then 1
else 0
end as flag
from table1
正則表達式描述了一個以字母字符開頭,后跟 0 到 N 個字母字符或空格,並以字母字符結尾的字符串。
COL1 | FLAG :---------- | ---: Abc gty xyz | 1 ab/c bpl ?t | 0 qwr .p | 0 titio iop | 1 TItio io/ | 0 abc | 1 abc xy | 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.