使用ORACLE查找第五个位置是否为字母而不是数字
我如何用甲骨文判断第五个位置是否是字母而不是数字 我最后一次尝试使用以下语句:使用ORACLE查找第五个位置是否为字母而不是数字,oracle,Oracle,我如何用甲骨文判断第五个位置是否是字母而不是数字 我最后一次尝试使用以下语句: REGEXP_LIKE (table_column, '([abcdefghijklmnopqrstuvxyz])'); 尝试: 或: 尝试: 或: 也许你更愿意检查第5位是否包含一个数字(这意味着它不是其他的东西),也就是说,做与你现在做的相反的事情 为什么??因为“字母”不仅仅是ASCII码;看看我的示例中的第4行-它包含克罗地亚字符,这些字符不在[a-z](或[a-z])之间 也许你更愿意检查第5位是否包含一
REGEXP_LIKE (table_column, '([abcdefghijklmnopqrstuvxyz])');
尝试:
或:
尝试:
或:
也许你更愿意检查第5位是否包含一个数字(这意味着它不是其他的东西),也就是说,做与你现在做的相反的事情 为什么??因为“字母”不仅仅是ASCII码;看看我的示例中的第4行-它包含克罗地亚字符,这些字符不在[a-z](或[a-z])之间
也许你更愿意检查第5位是否包含一个数字(这意味着它不是其他的东西),也就是说,做与你现在做的相反的事情 为什么??因为“字母”不仅仅是ASCII码;看看我的示例中的第4行-它包含克罗地亚字符,这些字符不在[a-z](或[a-z])之间
锚定到字符串的开头,否则可能会得到意外的结果。这是可行的,但是删除插入符号(字符串锚点的开头),它将返回“TRUE”!注意,它使用不区分大小写的标志“i”
select 'TRUE'
from dual
where regexp_like('abcd4fg', '^.{4}[A-Z]', 'i');
锚定到字符串的开头,否则可能会得到意外的结果。这是可行的,但是删除插入符号(字符串锚点的开头),它将返回“TRUE”!注意,它使用不区分大小写的标志“i”
select 'TRUE'
from dual
where regexp_like('abcd4fg', '^.{4}[A-Z]', 'i');
还有另一种方法:
regexp_like(table_column, '^....[[:alpha:]]')
使用字符类[[:alpha:][]将拾取所有字母大写、小写、重音等,但将忽略数字、标点符号和空白字符
如果您关心的是字符不是数字,则使用
not regexp_like(table_column, '^....[[:digit:]]')
或
还有另一种方法:
regexp_like(table_column, '^....[[:alpha:]]')
使用字符类[[:alpha:][]将拾取所有字母大写、小写、重音等,但将忽略数字、标点符号和空白字符
如果您关心的是字符不是数字,则使用
not regexp_like(table_column, '^....[[:digit:]]')
或
过了一会儿,我找到了一个解决方案:解码(LPAD(SUBSTR(SUBSTR)(collumn,regexp_instr(collumn,'myfield:'))+9,7),5),1)“A”,“是字符A”,“B”,“是字符B”,“C”,“是字符C”,“D”,“D”,“E”,“是字符E”,“F”,“是字符F”,“G”,“是字符G”,“H”,“是字符H”,“I”,“是字符I”,“J”,“是字符J”,“是数字”)为什么只有小写字母?像=+^%$这样的字符呢?过了一会儿,我找到了一个解决方案:解码(LPAD)(SUBSTR(SUBSTR(collumn,regexp_instr(collumn,'myfield:')+9,7,5),1),'A','is character A','B','C','C','D','s character D','E','s character E','F','s character G','s character G','H','s character H','I','s character J','s character is character J','s number')为什么只有小写?像=-+^%$#这样的字符怎么样?很酷,但为什么答案不查找大写或至少转换为大写或小写?很酷,但为什么答案不查找大写或至少转换为大写或小写?
not regexp_like(table_column, '^....\d')