2012-08-08 4 views
1

결과를 검색하는 SQL Server 2005에서 저장 프로 시저를 작성했습니다.'%%'결과가 손실 됨

SELECT RTRIM(DEPT_DESC) DEPT_DESC, RTRIM(DEPT_ID) DEPT_ID 
FROM T_ROLLUP_DEPT 
WHERE DEPT_ID like @SearchText + '%' OR DEPT_DESC like '%%' 

SP가 나는 열 내에서 검색하는 데 도움이 '%%'를 추가했다.

즉 Medical Controller를 검색하는 경우 'CONTRO'를 입력하면 Medical Controller 결과가 생성됩니다.

그러나 이것은 또한 두통을 일으켰습니다. dept_id로 검색하고 '2'를 입력하면 모든 결과가 나타납니다. 부서 ID는 2로 시작합니다. 또한 임의의 숫자를 입력하면 모든 결과가 다시 나타납니다.

누구나 왜이 문제를 해결할 수 있는지 알고 있습니까? .. OR 1 = 11 .. 말처럼

답변

1

이 모든 결과를 반환하지 않습니다되는 모든 검색 입력이? (나는 그렇지 않다고 생각합니다.)

아마 .. OR DEPT_DESC like '%' + @SearchText + '%'일까요? DEPT_DESC 검색 텍스트가 포함 된 경우 즉, 모든 NULL이 아닌 문자열과 일치하는 것이다 LIKE '%%'.. OR DEPT_DESC IS NOT NULL 말을하는 것과입니다, 사실은 ..

1 일치합니다.

+0

흥미 롭습니다. 그 점을 명확히 해 주셔서 감사합니다. 나는 그것이 모든 것을 선택하는 것이 사실임을 알아 차리지 못했기 때문에 자동 완성으로 실행했다. 팁 고마워 – user1512593