1

SQL クエリ (DB2) で、別のフィールド内のフィールド値を見つけるにはどうすればよいですか? たとえば、Field01 には部品番号「1234」が含まれています。Field02 には「これは保持する 1234 です」が含まれています

Field02 内の Field01 の値を検索または検索するにはどうすればよいですか?

LOCATE と LIKE と % % と Position を試しましたが、取得できないようです。

Field02 の先頭にある限り、Field02 で Field01 を見つけることができましたが、他の文字が続く場合は見つかりませんでした。これは私がこれに使用したコマンドです:

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

3 に答える 3

2

LOCATE関数は動作するはずです:

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

あなたの質問は、あなたがすでに試したことを述べていますLOCATE。うまくいかなかった場合は、説明してください。

ここにドキュメントのリファレンスがあります。

于 2013-03-10T22:36:39.043 に答える
1

LIKE次の方法で使用できます。

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

SQLFiddle デモ(SQLFiddle はまだ DB2 をサポートしていないため、PostgreSQL を使用しますが、この例は DB2 でも動作するはずです)。

DB2 はCONCAT文字列の連結に使用することを好みますが||、同義語としての標準もサポートしています。

于 2013-03-10T22:23:14.893 に答える
0

正常に動作しています、試してみてください-

SELECT * FROM TAB1 WHERE POSITION(field1,field2,CODEUNITS16)<>0

于 2013-03-15T06:05:19.417 に答える