在SQL查询(DB2)中,如何在另一个字段中找到字段值?

时间:2013-03-10 21:43:03

标签: sql db2

在SQL查询(DB2)中,如何在另一个字段中找到字段值? 例如,Field01包含部件号'1234'。 Field02包含'这是我保留的1234'

如何在Field02中找到或搜索Field01的值?

我尝试了LOCATE和LIKE以及%%和Position但似乎无法得到它。

我已经能够在Field02中找到Field01,只要它在Field02的开头,但是如果它由其他字符继续,则不能。 这是我用过的命令:

CASE 
    WHEN LEFT ( TRIM ( FIELD02), CHARACTER_LENGTH ( TRIM ( FIELD01 ) ) ) =  
     TRIM ( WMCPIL ) THEN TRIM ( FIELD02) 
 ELSE '^' 
END

3 个答案:

答案 0 :(得分:2)

LOCATE功能应该有效:

SELECT *
FROM table_name
WHERE LOCATE(field01,field02) <> 0

您的问题表明您已尝试LOCATE;如果它不起作用,请解释。

Here是文档参考。

答案 1 :(得分:0)

您可以通过以下方式使用LIKE

SELECT *
FROM mytable
WHERE field2 LIKE '%' || field1 || '%'

SQLFiddle demo(使用PostgreSQL作为SQLFiddle还不支持DB2,但这个例子也适用于DB2)。

DB2更喜欢使用CONCAT来连接字符串,但它也支持标准||作为同义词。

答案 2 :(得分:0)

工作正常,试试吧 -

SELECT * FROM TAB1 WHERE POSITION(field1,field2,CODEUNITS16)&lt;&gt; 0