1

このようなクエリがあります

SELECT * 
FROM Table_Name
WHERE Category !='0' 
AND To_Char(Category) like to_char(:paramCategory)

このカテゴリ値を使用してワイルドカード検索を実装したいと思います。値を9とすると、問題なく、期待どおりの結果が得られます。しかし、カテゴリの値として%9、9%、または%9%を使用すると、望ましい結果が得られません。たとえば、カテゴリが9で始まるすべての結果が得られますが、99,59,209などの結果は省略します。何が問題になっているのでしょうか。どうすれば解決できますか。

テーブルには他にも多くの列がありますが、このカテゴリは数値型です。このフィールドのdata_typeを変更することを提案しないでください。

提案を事前に感謝します。

4

1 に答える 1

2

使用%9%するとすべてが得られるはずです。SQLフィドルを見てください

create table mytest (category number);
insert into mytest values (9959209);
insert into mytest values (9000);
insert into mytest values (1009);

select * from mytest where category like '%9%'

結果はすべて行です。

于 2012-09-13T05:20:48.520 に答える