2010-04-07 80 views
2

我有一个表DB2中,其具有以下字段DB2 SQL模式匹配

  • INT XYZ;
  • string myId;
  • string myName;

示例数据集

xyz | myid   | myname 
-------------------------------- 
1 | ABC.123.456 | ABC 
2 | PRQS.12.34 | PQRS 
3 | ZZZ.3.2.2 | blah 

我想提取其中MYNAME高达匹配字符的行 “”在myId字段中。因此,从上面的3行中,我想要第一行2,因为myName在“。”之前存在于myId中。

如何在查询中执行此操作,我可以在查询内部进行某种模式匹配吗?在DB2实例

回答

2

LEFT并找到工作,我可以连接到(可能没有帮助,当然!)

所以希望这样的事情...

SELECT 
    * 
FROM 
    MyTable Z 
WHERE 
    LEFT(myid, LOCATE('.', myid)) = myname + '.' 
+0

是啊。这工作。我最初发现charindex函数在SQL Server中可用,而不在DB2中。 LOCATE工作完美 – Jitesh 2010-04-07 19:08:56