DB2查询,其中列的前两位数字是数字

时间:2014-10-27 14:22:06

标签: sql db2

我在db2中有一个包含这些值和列的表。

part    location    quantity
456     09B4        500
456     94C7        850
456     73B1        700
567     38A5        945
879     MR43F       1241
651     DC234       456
654     C34         546
456     B342        756
567     73B1        800     

我需要一个db2的sql语句来做这件事。

SELECT quantity FROM tablename WHERE part = '456' 
AND ((first two digits of location are numeric) OR (location LIKE 'MR%')

我不确定如何在db2中执行此操作。我需要部件号为“456”的所有行,并且位置的前两个字符是数字,还有以“MR”开头的行

1 个答案:

答案 0 :(得分:1)

我不认为DB2内置了对正则表达式的支持。但是,你可以通过角色比较进行角色扮演:

SELECT quantity
FROM tablename
WHERE part = '456' AND
      ((left(location, 1) BETWEEN '0' and '9' AND
        substr(location, 2, 1) BETWEEN '0' and '9'
       ) OR
       location LIKE 'MR%'
      )