db2 SQL模式搜索

sshcrbum  于 2022-11-07  发布在  DB2
关注(0)|答案(3)|浏览(120)

我可以使用什么'where'语句来定位和返回字段cfmesg中的值,其中字段内容是后跟连字符的数字?

sample data 
087-2-1-11
56-080
040-4-2-60
snvhrwxg

snvhrwxg1#

您可以使用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

fkvaft9z

fkvaft9z2#

您可以尝试以下查询
选择 * 来自[表名],其中[列名]类似于'%[0-9]-%'
“[0-9]-”将查找后跟连字符的数字。

06odsfpq

06odsfpq3#

我想这取决于你要找的是什么。如果你想找到所有值中有'-'的行,那么你可以运行如下代码:

select * from table where locate('-', cfmesg) > 1

如果您正在寻找一些更具体的东西,其中开始部分只包含数字,那么你会想要这样的东西:

select * from table where REGEXP_LIKE(cfmesg, '^\d+-')

相关问题