2017-12-19 73 views
0

를 검색하기 전에 필드의 값을 교체, 내가 이런 일을하고 싶지 (들)데이터베이스에서 검색 속도를 높이려면

나는 그것을 어떻게 할 수 있습니까?

이 나를 위해 일 did'nt :

"SELECT * FROM TheTableName WHERE REPLACE(TheFieldName, ' ', '')=test" 

오류 : 정의되지 않은 함수는 식의 '교체'

+0

. 이렇게해도 검색 속도는 향상되지 않습니다. – DancingFool

+0

@DancingFool 당신은 vb6 코드의 프로세스 속도가 SQL 엔진 내부의 프로세스 속도와 동일하다는 것을 확신합니까? –

+0

vb6에서 내 adodb 버전이 SQL의 replace 명령을 지원하지 않는 것으로 보인다고해서 인터넷을 다시 검색했습니다. (이 방법이없는 것 같습니다. SQL 명령 대신 vb6에서 프로세스를 수행하기로 결정했습니다. '( –

답변

1

replace()가 SQL 서버에 알려진 (또는 거의되지 않는다는 것을 나에게 가능성이 보인다 다른 데이터베이스). 그러나 자신이 생각하는 데이터베이스를 사용하고 있는지 확인하십시오.

test을 문자열로 사용하고 있기 때문에 사용자의 쿼리에 오류가 있습니다. 쿼리가 실제로 다음과 같이 보입니까?

SELECT * 
FROM TheTableName 
WHERE REPLACE(TheFieldName, ' ', '') = 'test'; 

따옴표는 'test'입니다.

+0

' (Microsoft Activex 데이터 객체 2.8 라이브러리) –

+0

TRIM과 같은 것을 찾고 있지만 검색 문자열의 모든 공백을 제거하려면 –

+0

OBJRS_RV_LOCAL.Open (SQL_STRING, OBJCN, adOpenForwardOnly, adLockReadOnly, adCmdText)을 호출하십시오. –

0

이렇게하면됩니다. 당신은 심지어 비교를하고 시작하기 전에 TheTableName의 모든 행에 대한 교체 작업을 할 것입니다 여기서 뭐하는거야

"SELECT * FROM TheTableName WHERE rtrim(ltrim(TheFieldName))=test" 
+1

네, 다른 질문을 할 수 있습니다. 'TheFieldName' 열의 공백이 그대로 유지됩니다. 앞뒤 공백을 제거하면됩니다. –