簡體   English   中英

Oracle - REGEXP_LIKE 沒有給出想要的結果

[英]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 個字母字符或空格,並以字母字符結尾的字符串。

DB Fiddle 上的演示

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM