11番目の文字にアンダースコア文字が含まれるすべてのレコードを選択したいので、これを試してみます。
SELECT * FROM "BOM_SUB_LEVEL" where TOP_CODE like '%%%%%%%%%%_%%%'
しかし、これは期待どおりに機能しません、誰かが助けることができますか?
11番目の文字にアンダースコア文字が含まれるすべてのレコードを選択したいので、これを試してみます。
SELECT * FROM "BOM_SUB_LEVEL" where TOP_CODE like '%%%%%%%%%%_%%%'
しかし、これは期待どおりに機能しません、誰かが助けることができますか?
「SUBSTRING」関数を使用するだけです:
SELECT * FROM "BOM_SUB_LEVEL" where SUBSTRING(TOP_CODE, 11, 1) = "_"
マーク
1文字のワイルドカードの場合は、を使用します_
。複数文字のワイルドカードの場合は、を使用します%
。の「実際の」外観を回避するには_
、を使用します\_
(Billに感謝します)。
次のコードを試してください。
SELECT * FROM "BOM_SUB_LEVEL" where TOP_CODE like '___________\_%'
Davのコメントに続いてさらに詳しく説明すると、定義上「%」は複数の文字をカバーするため、「%%%」は「%」とまったく同じであることに注意してください。
pervasiveは、_を使用して任意の単一文字に一致し、\_を使用して実際にアンダースコアに一致します。
したがって、選択は次のようになります。
SELECT * FROM "BOM_SUB_LEVEL" where TOP_CODE like '___________\_%'
LIKE%は任意の数の文字を意味します。LIKE_を使用して1つだけを意味します。アンダースコアを探しているので、!でエスケープする必要があります。
SELECT * FROM BOM_SUB_LEVEL WHERE TOP_CODE LIKE '__________!_%'
%は文字ごとのワイルドカードではなく、文字列のワイルドカードの最初と最後です。
つまり、「車」が含まれるすべての行を検索する場合は、次のようにします。
myTableから*を選択します。myColLIKE'%car%'
車で始まった行だけが必要な場合:
myTableから*を選択します。myColLIKE'car%'
そして車で終わった:
myTableから*を選択します。myColLIKE'%car'
%はワイルドカードであり、文字または文字の組み合わせを置き換えることができます。使用する ?代わりに、単一の文字を置き換えます。
あなたは次のようなことを試すことができます:(数字で遊んでください、私はテストするために普及していません)
SELECT *
FROM BOM_SUB_LEVEL
where SUBSTRING(TOP_CODE, 11,1) = '-'