具有一个字符串列-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;
但结果错误。
答案 0 :(得分:1)
这符合您的需求吗?
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