Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 正则表达式查询_Sql_Regex_Oracle11g - Fatal编程技术网

Sql 正则表达式查询

Sql 正则表达式查询,sql,regex,oracle11g,Sql,Regex,Oracle11g,我必须读取一个字符串列,并根据该字符串在数字列中加载一个值: 'S12345'-12345(删除第一个字母并加载剩余的数字) “12345”-12345(直接加载号码) “12345T”-NULL(如果最后一个字符是字母,则加载NULL) “1A2B3C45”或“SQ12345”-NULL(如果字符串中有超过1个字母,则加载NULL) 我试图设计一个使用CASE和REGEXP_的查询,但运气不好。有人能帮我查询一下具体要求吗。提前谢谢 我想你在找这个: ^[A-Za-z]?(\d+)$ 是一些

我必须读取一个字符串列,并根据该字符串在数字列中加载一个值:

'S12345'-12345(删除第一个字母并加载剩余的数字)

“12345”-12345(直接加载号码)

“12345T”-NULL(如果最后一个字符是字母,则加载NULL)

“1A2B3C45”或“SQ12345”-NULL(如果字符串中有超过1个字母,则加载NULL)


我试图设计一个使用CASE和REGEXP_的查询,但运气不好。有人能帮我查询一下具体要求吗。提前谢谢

我想你在找这个:

^[A-Za-z]?(\d+)$

是一些测试数据的示例,您可以添加自己的数据行来测试它。

请显示您尝试了什么。我们不是来为您完成工作的,但我们会帮助您修复不工作的代码。
1A2
会返回什么(即字符串中只有一个字母的数字,但不在开头)?注意:
[a-z]!=[A-Za-z]
很奇怪,但是如果您的regexp解释器支持\d,它也支持\w而不是[A-Za-z],那么为什么不
^[\w](\d+)$
?因为
\w
也包含
0-9
。对于整数字符串,如
12345
,它只捕获capturegroup中的
2345
,因为第一个字符是可选的,但与
\w
匹配,但与
[A-Za-z]
不匹配。