在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
答案 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