2012-09-13 2 views
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을 변경하도록 제안하지 마십시오.

미리 제안 해 주셔서 감사합니다.

답변

2

%9%을 사용하면 모두 제공됩니다. 살펴보기 SQL Fiddle

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%' 

결과는 모두 행입니다.

+0

실제로 99가 게임을하도록 허용하지 않은 조건이있었습니다. 하지만 최근에 알아 냈어. 어쨌든 당신이 ans를 주었고 SQL 바이올린의 링크를 제공 한 이후로, 대답은 받아 들여지고 투표는 나에게서 일어났습니다. – Pankouri

관련 문제