我可以使用什么'where'语句来定位和返回字段cfmesg中的值,其中字段内容是后跟连字符的数字?
sample data 087-2-1-11 56-080 040-4-2-60
snvhrwxg1#
您可以使用REGEXP_LIKE并使用正则表达式来查找该模式:
REGEXP_LIKE
WITH YOUR_TABLE AS ( SELECT '087-2-1-11' AS CFMESG FROM sysibm.sysdummy1 UNION SELECT '56-080' FROM sysibm.sysdummy1 UNION SELECT 'abcd' FROM sysibm.sysdummy1 ) SELECT * FROM YOUR_TABLE WHERE REGEXP_LIKE(CFMESG, '\d-')
| CFMESG公司|| - -|| 087年2月1日|| 第56-080页|dbfiddle
fkvaft9z2#
您可以尝试以下查询选择 * 来自[表名],其中[列名]类似于'%[0-9]-%'“[0-9]-”将查找后跟连字符的数字。
06odsfpq3#
我想这取决于你要找的是什么。如果你想找到所有值中有'-'的行,那么你可以运行如下代码:
select * from table where locate('-', cfmesg) > 1
如果您正在寻找一些更具体的东西,其中开始部分只包含数字,那么你会想要这样的东西:
select * from table where REGEXP_LIKE(cfmesg, '^\d+-')
3条答案
按热度按时间snvhrwxg1#
您可以使用
REGEXP_LIKE
并使用正则表达式来查找该模式:| CFMESG公司|
| - -|
| 087年2月1日|
| 第56-080页|
dbfiddle
fkvaft9z2#
您可以尝试以下查询
选择 * 来自[表名],其中[列名]类似于'%[0-9]-%'
“[0-9]-”将查找后跟连字符的数字。
06odsfpq3#
我想这取决于你要找的是什么。如果你想找到所有值中有'-'的行,那么你可以运行如下代码:
如果您正在寻找一些更具体的东西,其中开始部分只包含数字,那么你会想要这样的东西: