Sql 在DB2中使用LIKE with

Sql 在DB2中使用LIKE with,sql,db2,Sql,Db2,我想使用类似于: SELECT A.* FROM MYSCHEMA.MYTABLE A, MYSCHEMA.SECONDTAB B WHERE A.COL1 LIKE B.COL1 || '%' 如何在DB2中实现这一点 不太确定您想要实现什么,但它在DB2中工作。只需在LIKE TRIM(B.COL1)| |“%”处添加TRIM函数或将其交换到处,其中B.COL1 LIKE TRIM(A.COL1)| |“%” [编辑] 上面的代码在as/400中的DB2中工作(或者不管他们现在叫什么名字)

我想使用类似于:

SELECT A.* FROM MYSCHEMA.MYTABLE A, MYSCHEMA.SECONDTAB B WHERE A.COL1 LIKE B.COL1 || '%'
如何在DB2中实现这一点


不太确定您想要实现什么,但它在DB2中工作。只需在
LIKE TRIM(B.COL1)| |“%”处添加TRIM函数
或将其交换到
处,其中B.COL1 LIKE TRIM(A.COL1)| |“%”

[编辑] 上面的代码在as/400中的DB2中工作(或者不管他们现在叫什么名字)

假设COL1 type=varchar,下面可能会使用DB2LUW(使用DB2WindowsV8.2测试)

WHERE SUBSTR(A.COL1,1,LENGTH(A.COL1)) = SUBSTR( B.COL1, 1,LENGTH(A.COL1))

请始终明确限定联接,不要使用隐式联接语法(逗号分隔的
FROM
子句)。一方面,它使人类更容易找到相关条件(并且不会真正影响计算机)。这也使得处理左连接变得更容易。我在这个问题上看到了3个答案。您的代码在中没有
。为什么要把它放在标题中?在涉及的两个表中,COL1列的数据类型是什么?@FredSobotka:Varchar是所有列的数据类型。不工作!获取错误消息:LIKE谓词或POSSTR标量函数无效,因为第一个操作数不是字符串表达式,或者第二个操作数不是字符串。定位或定位标量函数无效,因为第一个操作数不是字符串,或者第二个操作数不是字符串表达式。@Nikunj Chauhan,请查看更新的答案。抱歉,最初我只是在as/400中使用DB2进行测试,并认为它可以与其他DB2风格一起使用。可能其他人有更好/更简单的答案这两个查询都在DB2LUWV9.7上工作。在第二个查询中,第一个SUBSTR表达式是毫无意义的,因为将A.COL1的SUBSTR从1变为A.COL1的长度是一种昂贵的表示A的方式。COL1@Fred索博特卡。你是对的,第一个SUBSTR是无用的,谢谢你检查v9.7。